Delphi - 相当于C#的三元运算符?

标签 delphi operators ternary-operator

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/

相关文章:

c++ - 为什么在 operator< 存在时定义 lt?

c++ - 三元运算符的第二个或第三个参数为空白或什么都不做

c++ - 逻辑或表达式 c++

c++ - 在 C++ 中用类型为 'double' 的乘数将复数对象与实部和虚部相乘

javascript - 解释为什么三元语句在 React 中没有像预期的那样工作

java - 为什么spring三元表达式得到相反的结果?

delphi - 使用 Delphi XE 在运行时将 png 图像添加到图像列表

delphi - 如何使用Delphi显示TImage中所有图片格式

windows - 如何使用Delphi在Win7防火墙中打开端口

delphi - TeeChart改变轴标题与轴之间的距离DELPHI XE3