真不是心血来源-想写下程序员的苦逼生活与NULL

2013 年 9 月 8 日
 banxi1988
自从写C开始就没有少被null坑过.
然后到java也一直被NullPointerException折磨.
到了SQL了,NULL也是一个令人头痛的问题.
相信大家都有过类似的经历.

还请各位分享下,跟NULL值有关的苦痛史及跳出这个坑的一些经验吧!
6686 次点击
所在节点    程序员
36 条回复
felix021
2013 年 9 月 8 日
心血来[潮]……

其实我觉得还好,写了这么多年C,没有被坑得很厉害的感觉。LZ被坑得多,可能跟编码习惯也有关系。
fangzhzh
2013 年 9 月 8 日
话说有个公司新进了一个员工,英文名叫null, 然后公司的OA崩溃了
banxi1988
2013 年 9 月 8 日
@felix021
晕,我居然选错字了.
还好,上学那会写C比较多,经常段错误.呵呵.
编码习惯的话,确实可能有关系.在null的语言中,就必须时刻想着这东西是不是空..
但是很多时候有意无意有忘了.
我现在的开始使用避免这种null的策略,就是想着用NullObject模式来处理.
banxi1988
2013 年 9 月 8 日
@fangzhzh
哈哈,应该是个段子吧?
不会真有此事吧! 这不是真的.呵呵.
SoloCompany
2013 年 9 月 8 日
NullPointerException 总比 Segment Fault 要好吧楼主?
C0VN
2013 年 9 月 8 日
None
clowwindy
2013 年 9 月 8 日
前几天豆瓣改版后,Feed 里出现了

None 说:
None
eggacher
2013 年 9 月 9 日
nil
gangsta
2013 年 9 月 9 日
"a billion-dollar mistake"...

stackoverflow上有类似经典问题:
http://stackoverflow.com/questions/271526/avoiding-null-statements-in-java

除了你说的NullObject,也可以参考下Guava里的做法:
http://code.google.com/p/guava-libraries/wiki/UsingAndAvoidingNullExplained
roricon
2013 年 9 月 9 日
@fangzhzh 这条点赞了!
sojingle
2013 年 9 月 9 日
其实在使用 Objective-C 之前,平时写代码都会注意空指针检查,被坑得倒也不多,长时间使用 OC 之后再去用其他语言来写,各种被坑!T_T
zencoding
2013 年 9 月 9 日
@fangzhzh 本周最佳冷笑话
Mutoo
2013 年 9 月 9 日
func = func || function(){}

func(); // what is null...
wupher
2013 年 9 月 9 日
同意@sojingle,你应该转去做iOS开发就好。
so898
2013 年 9 月 9 日
竟然有人说转去OB-C就没有Null问题,简直就是开玩笑……
通过NSJSONSerialization处理完成的NSDictionary里面的Null简直就是无法处理啊!
换成id和NSNull对比还是不能得出正确结论啊!一会可以一会不行啊!
输出NSString内容一会"<null>"一会空白啊!
这尼玛就是坑啊!
再一个那个逗逼NSNull竟然和id有一样的Function啊!啥时候转换成空的都不清楚啊!
jedyu
2013 年 9 月 9 日
NULL都不是大问题,gdb bt一下不就全出来了。
Wild pointer才是头痛的,Code review是关键
banxi1988
2013 年 9 月 9 日
@so898 哈哈我也被这个坑过.因为返回的json有null的.
我的解决方法是:
如果这个obj对应的json为null的话,
它其实是一个NSString的东西,一般不会出空白吧.
将它强制转成NSString之后再做字符串比较..
(NSString*)obj == "<null>"
nil
2013 年 9 月 9 日
nil
l0wkey
2013 年 9 月 9 日
null
none
null
none...
jesse_luo
2013 年 9 月 9 日
pclint一定程度可以帮助检测空指针,野指针才是真凶残……而且是害别人……

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://study.congcong.us/t/81783

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX