起由很简单,下午群里闲着没事,我突发奇想想考下大家的基础,网上盗了一题,非常简单。
大家七嘴八舌,做对的固然很多,当然不屑一顾做错的也大有人在。
我最后公布了答案(14,15,14,23),大家哦的一声恍然大悟,责怪自己的不仔细。
这时候有人站了出来:“你这答案不对啊,用Xcode敲出来第四个明明是25”
然后安卓组的有人回应了:“答案是23无误”。
我头大了一下,赶紧低头检查了一遍,确认是23没错,走到他电脑前,果然console打印确实明晃晃的25,这时候我开始怀疑人生了,网上答案明明23,安卓用android studio打印也是23,为什么Xcode这么不给我面子,为什么!
本着求知的态度,跟小组里讨论了下,什么运算符优先级,执行顺序,最后得出结论
a += (a++) +(a++);
这行罪魁祸首 Xcode 等同于 a = (a++) +(a++) +a;居然特例独行把等号左边的值放在了后面,而C和java一致都是放在前面,所以造成了差异。
所以,无知的还是很多,坑慢慢踩吧。
哦对了,最近在转swift,相信凭着我dota转lol仅仅用了1个礼拜,应该还是很easy的。