三元运算符? :表示if-then-else构造,除了它实际返回一个值.所以代替:
if ( condition )
x = expression1;
else
x = expression2;
Run Code Online (Sandbox Code Playgroud)
你可以写:
x = (condition) ? (expression1) : (expression2);
Run Code Online (Sandbox Code Playgroud)
在C,C++,Java等中,你不能写:
x = if (condition) (expression1) else (expression2);
Run Code Online (Sandbox Code Playgroud)
但是,有些语言(如Ruby)允许使用类似的表单,因为Ruby中的语句总是返回一个值,而块的值是块中最后一个语句返回的值.