【发布时间】:2010-05-25 16:06:39
【问题描述】:
我写boolean bool = aString.indexOf(subString) != -1的时候Eclipse没有报错,是不是和boolean bool = aString.indexOf(subString) != -1 ? true : false一样?
【问题讨论】:
我写boolean bool = aString.indexOf(subString) != -1的时候Eclipse没有报错,是不是和boolean bool = aString.indexOf(subString) != -1 ? true : false一样?
【问题讨论】:
是的。比较产生一个布尔值,它可以像任何其他值一样分配给变量。
第二种形式(使用三元?: 运算符)是多余的,不应使用。
在风格上,我通常在将布尔表达式赋值给值时将它们括在括号中,如
boolean bool = (aString.indexOf(subString) != -1);
为了在两个运算符之间使用= 符号进行强烈的视觉区分,但这不是必需的。
【讨论】:
是的,两种语法都是等价的。
使用括号更清楚或更易读。
boolean bool = (aString.indexOf(subString) != -1);
【讨论】:
是的,当然。布尔表达式返回一个布尔值。这就是为什么它可以在if 语句等中使用,因为它们期望true 或false 结果。
【讨论】: