三元运营商:糟糕或良好的做法?

23 ternary-operator

我正在寻找使用/不使用它的理由和原创想法(在使用和替换它们时).


重复:

相关(但没有解决被问到的问题):

Ted*_*uba 43

为了便于阅读,我只使用三元组,如果它适合一个80-char线.

  • 或者甚至是 40 个字符的行 (4认同)

kar*_*m79 10

适用于PHP等模板语言中的短标签,例如:

<form>
<input type='radio' name='gender' value='m' <?=($gender=='m')?"checked":""?>>Male
<input type='radio' name='gender' value='f' <?=($gender=='f')?"checked":""?>>Female
</form>
Run Code Online (Sandbox Code Playgroud)

适合javascript/jQuery中的切换:

var el = $("#something");
$(el).is(':visible') ? $(el).hide("normal") : $(el).fadeIn("normal");
Run Code Online (Sandbox Code Playgroud)

适合分配,特别是在特定变量名称可以采用不同类型的情况下:

$var = ($foo->isFoo()) ? 'Success!' : false;
Run Code Online (Sandbox Code Playgroud)


Meh*_*ari 5

这就像循环一样for。它的用途是有意义的,但当你试图在里面塞更多的东西时,它就变得不可读了。


Dus*_*ell 5

条件三元运算符肯定会被过度使用,有些人发现它非常难以理解.但是,我发现在大多数情况下,如果它的意图很明确,那么布尔表达式是非常干净的.如果意图明确,最好使用具有明确名称的临时变量,其值使用if语句分配,或者使用具有返回预期值的良好名称的函数.