三元或不三元?

我个人是三元运算符的倡导者:()? :; 我确实意识到它有它的位置,但我遇到了许多完全反对使用它的程序员,而且有些使用它的人经常使用它。

你对此有何感想? 你看过什么有趣的代码?


用于简单表达式

int a = (b > 10) ? c : d;

不要链接或嵌套三元运营商,因为它很难阅读和混淆:

int a = b > 10 ? c < 20 ? 50 : 80 : e == 2 ? 4 : 8;

此外,使用三元运算符时,请考虑以提高可读性的方式对代码进行格式化:

int a = (b > 10) ? some_value                 
                 : another_value;

由于不能在每个子表达式上放置断点,因此它使调试稍微困难一些。 我很少使用它。


我喜欢它们,特别是在类型安全的语言中。

我不明白这是怎么回事:

int count = (condition) ? 1 : 0;

比这更难:

int count;

if (condition)
{
  count = 1;
} 
else
{
  count = 0;
}

编辑 -

我认为三元运营商使得一切都不那么复杂,而且比替代方案更为简洁。

链接地址: http://www.djcxy.com/p/42859.html

上一篇: To ternary or not to ternary?

下一篇: VB linq to sql isnull