29

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


复制:

相关(但没有解决所提出的问题):

4

5 回答 5

52

为便于阅读,我只在适合 80 字符行的情况下使用三进制。

于 2009-03-29T15:50:20.900 回答
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;
于 2009-03-29T15:45:00.927 回答
7

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

于 2009-03-29T15:44:47.340 回答
4

这有点像for循环。对于它的用途是有道理的,但是当您尝试在其中添加更多内容时,它变得不可读。

于 2009-03-29T15:37:13.053 回答
0

你说的是哪个三元运算符?

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

如果你在谈论 ? : 运算符,这称为条件运算符。就个人而言,我不能没有它了。If-else 语句对我来说看起来很乱,尤其是在进行条件赋值时。有些人抱怨它看起来很乱,但仍然有可能(尤其是在使用 Visual Studio 或其他智能格式化 IDE 的情况下)使内容易于阅读,并且无论如何您都应该注释所有条件。

于 2009-03-29T15:39:19.817 回答