我想问一下对于2个变量使用2个三元运算符而不是if / else块的一般意见是什么。
举一个例子让它更清楚,
if / else块:
var foo;
var bar;
if (boolean_expression) {
foo = value1;
bar = value2;
} else {
foo = value3;
bar = value4;
}
使用2个三元操作:
var foo = (boolean_expression) ? value1 : value3;
var bar= (boolean_expression) ? value2 : value4;
显然if / else块效率更高,因为它只评估boolean_expression一次,而2个三元运算对它进行两次评估。
然而,在我看来,使用三元操作是如此清晰和可读,我最近决定牺牲两者之间的最小效率差异来提高我的代码的可读性。 (如果代码不重要或执行太频繁)
另外,我会对3个变量进行微弱论证。
我对我的代码做了一件可怕的事情,还是有更好的方式我不知道?
我在c#中编码,但我想这个问题对任何具有三元操作的语言都很重要。
答案 0 :(得分:0)
我认为这个问题对任何具有三元语言的语言都很重要 操作
有些语言提供了这个:
(foo, bar) = (boolean_expression) ? (value1, value2) : (value3, value4);