Possible Duplicate:
Is there, or is there ever going to be, a conditional operator in Delphi?
据我所知,Delphi 没有 C# 中的三元运算符。
即?:
那么如何最好地表示这个函数调用呢?最干净的方法是什么?
如果有任何代码可以用来代替编写单独的函数,那就太好了?如果不是,那么最有效和/或最干净的代码表示是什么?
最佳答案
当然可以使用
IfThen(SomeBooleanExpression, IfTrueReturnValue, IfFalseReturnValue)
其中返回值为数字(使用 Math
)或字符串(使用 StrUtils
)。但请注意,这将在所有情况下计算两个参数 - 没有惰性计算,因此它不如 C# 中的 ?:
运算符高效,后者仅计算正确的操作数。
所以你不能这样做
y := IfThen(x <> 0, 1/x, 0)
最好的事情就是坚持平凡
if x <> 0 then y := 1/x else y := 0;
关于Delphi - 相当于C#的三元运算符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5241982/