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

2013-09-08 22:15:44 +08:00
 banxi1988
自从写C开始就没有少被null坑过.
然后到java也一直被NullPointerException折磨.
到了SQL了,NULL也是一个令人头痛的问题.
相信大家都有过类似的经历.

还请各位分享下,跟NULL值有关的苦痛史及跳出这个坑的一些经验吧!
5787 次点击
所在节点    程序员
36 条回复
felix021
2013-09-08 22:22:48 +08:00
心血来[潮]……

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

None 说:
None
eggacher
2013-09-09 09:08:41 +08:00
nil
gangsta
2013-09-09 09:13:48 +08:00
"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-09-09 09:34:47 +08:00
@fangzhzh 这条点赞了!
sojingle
2013-09-09 09:43:14 +08:00
其实在使用 Objective-C 之前,平时写代码都会注意空指针检查,被坑得倒也不多,长时间使用 OC 之后再去用其他语言来写,各种被坑!T_T
zencoding
2013-09-09 10:47:27 +08:00
@fangzhzh 本周最佳冷笑话
Mutoo
2013-09-09 10:53:13 +08:00
func = func || function(){}

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

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

https://www.v2ex.com/t/81783

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

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

© 2021 V2EX