问题
在使用三目运算符时,没有接收返回值,无法通过编译。
代码
true?1:0;
即使是像上述那种简单的运算,如果不接受返回值同样会报错!报错内容为:
Type mismatch: cannot convert from int to boolean
如果写成:
true?true:false;
则该行不会报错,但是上一行会报错,报错信息为:
Syntax error on token “;”, assert expected after this token
总结
三目运算符的使用必须接受该运算所产生的返回值。
···?···:···;和if···else···的比较
个人觉得三目运算符的结构更为紧凑,能够使代码更加简洁美观,但是使用三目运算符和使用if···else···的方式并不会有多大的性能差别,本次发现三目运算符必须接受其返回值,这一点算是三目运算符和if···else···的一点小小的差别!