我有一个if else的简短陈述如下:
(one == two) ? "do this" : "do this"
Run Code Online (Sandbox Code Playgroud)
反正有没有在这个声明中添加if else?
我似乎无法找到任何与if else ...
我是特定于简短的陈述,而不是如果否则其他的缩写.
谢谢.
您可以将其扩展为任意数量的子句,与if-else
构造完全类比.
return a == b? "b"
: a == c? "c"
: a == d? "d"
: "x";
Run Code Online (Sandbox Code Playgroud)
在这种形式下,它cond
在形状和语义上都非常类似于Lisp .
但是,请注意,这不是"if/else的简写",因为它是一个表达式,而if/else是一个语句.如果表达式有任何副作用,那么滥用三元运算符会非常糟糕.
如果要转换类似:
if(A) {
return X;
}
else if(B) {
return Y;
}
else {
return Z;
}
Run Code Online (Sandbox Code Playgroud)
您可以这样写:
A ? X : (B ? Y : Z);
Run Code Online (Sandbox Code Playgroud)
因此,您可以将else if
条件作为条件写在上层表达式的else -part(之后:
)中。
但是,我强烈建议不要过多级联。代码变得极不可读,并且? :
代码结构从未为此设计。
“:”是其他
(one == two) ? "do this" : "do that"
Run Code Online (Sandbox Code Playgroud)
如果一等于二则“做这个”,否则(如果一不等于二)则“做那个”。