【发布时间】:2015-08-31 14:28:54
【问题描述】:
我想像这样使用三元运算符 - 只检查语句的 true 部分:
foo() ? bar() : /* Do nothing */;
是否可以排除此语句中“else”部分的逻辑?我尝试使用return;,但编译器给出了错误。基本上我想要实现的只是使用三元运算符的语句,如下所示:
foo() ? bar();
这可以实现吗?
【问题讨论】:
-
为什么不直接使用
if? (不,不可能) -
我只是好奇这是否可能。就是这样。
-
这实际上没有任何意义。表达式必须有值。
-
我相信这实际上是希望有一个简单的 if 语句的简写,保持代码紧凑(即使使用 IDE 格式化程序,也只有一行,没有括号)。最接近的半有效选项是与 foo() && bar() 部分短路,因为 bar() 仅在 foo() 为真时执行。