如果我想实现一些条件代码,可以用这两种方式实现。那么条件运算符 ?: 或 if..then..else 哪种方式更好?
这取决于。一般来说,您希望主要的活动流程
可以用代码的结构来表示。如果关键点
该算法的变量是x
被初始化,那么
最好的解决方案是使用条件运算符:
x = condition ? f1() : f2();
如果决策对于理解什么是关键问题
继续下去,那么你会更喜欢if
。在实践中,这意味着
当两者都合理可行时,您将使用?:
。这
关键是“合理”——如果你发现你正在使用
子表达式中的逗号运算符,子表达式有
副作用,然后使用?:
可能不太“合理”。
EDIT:
当你使用?:
运算符,除了最简单的之外
在这种情况下,您应该将其格式化为与if
, e.g.:
x = condition
? complex_expression_1
: complex_expression_2;
我经常这样做。 (有特殊情况我会推
it:如果我可以将整个函数减少到单个返回
陈述。我仍然不允许逗号的副作用
运算符,但有时我会使用更复杂的表达式
不然的话我会的。)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)