这取决于。通常,您希望活动的主要流程在代码的结构中表示。如果算法的关键是变量
x已初始化,那么最好的解决方案是使用条件运算符:
x = condition ? f1() : f2();
如果决策是了解正在发生的事情的关键问题,那么您将首选
if。实际上,这意味着当两者都可行时,您将使用
?:。关键是“合理”
—如果您发现在子表达式中使用逗号运算符,则这些子表达式会有副作用,那么使用
?:可能不是“合理的”。
编辑:
当您使用
?:运算符时,除了最简单的情况外,都应完全像设置格式一样
if,例如:
x = condition ? complex_expression_1 : complex_expression_2;
我经常这样做。(在一种特殊情况下,我会推送它:如果我可以将整个函数简化为单个return语句。我仍然不会允许逗号运算符的副作用,但是有时我会使用比其他方式更复杂的表达式将。)



