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

时间:2009-03-29 15:34:27

标签: ternary-operator

我正在寻找使用/不使用它的原因以及原创想法(在使用和替换它们时)。

<小时/> 复制:

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

5 个答案:

答案 0 :(得分:38)

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

答案 1 :(得分: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>

适用于javascript / jQuery中的切换:

var el = $("#something");
$(el).is(':visible') ? $(el).hide("normal") : $(el).fadeIn("normal");

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

$var = ($foo->isFoo()) ? 'Success!' : false;

答案 2 :(得分:5)

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

答案 3 :(得分:4)

类似于for循环。对它的制作有意义,但当你试图在其中加入更多的东西时,它变得难以理解。

答案 4 :(得分:-1)

你在谈论哪个三元运营商?

三元运算符是任何带三个参数的运算符。

如果你在谈论? :运算符,这称为条件运算符。个人而言,我不能没有它。 if-else语句对我来说看起来很混乱,尤其是在进行条件赋值时。有人抱怨它看起来很乱,但仍然可以(特别是如果使用Visual Studio或其他智能格式化的IDE)使事情易于阅读,并且你应该评论你所有的条件。