三目运算符的陷阱


分析:上面这个用了三目运算符的表达式,判断条件是_timeData.startTime > 0 ,有时候定式思维就会造成我们直接把后面选项里的第一项空掉,以为条件为真,就会选择_timeData.startTime。
           但实际上不是的,?号前的表达式实际上是一个整体,整个表达式为真就会选择整个表达式为第一个选项,如果你不写第一个选项,那么就会默认把判断条件整个表达式作为返回值;整个表达式是假,就会选第二个表达式。所以,这个表达式,如果不写第一个选项,而判断条件又为真,那么最终返回结果就不是一个时间值,而是bool值yes。

你可能感兴趣的:(iOS编程,语言,编程技巧)