1
40
这样的操作程序不是当前Delphi版本的一部分,因为它不是以前版本的一部分,而且需求也不足以证明添加它的成本。(你会发现这个解释适用于 太多了 你希望拥有的功能 太多了 产品)
Delphi提供了一组
要真正做到正确,需要编译器的帮助。在Delphi社区中,我普遍不喜欢使用问号和冒号的C样式语法。我看到过使用如下语法的建议:
条件运算符之所以如此吸引人,部分原因是它们允许您编写简洁的代码,但Delphi的所有内容都采用这种编写方式,即使将所有内容都放在一行上,也会使上述内容不具吸引力。
它不需要以
操作人员
. Delphi Prism提供编译器的魔力函数
您问过为什么像这样的功能不会和Delphi2009中添加的所有其他语言功能一起添加。我想这就是你的原因。还有很多其他的语言变化已经需要精细的处理;开发人员不需要承担更多的负担。功能不是免费的。
你问德尔福是否会有这样的功能。我不知道Embarcadero的计划会议,我不得不把我的水晶球送去修理,所以我不能肯定,但我预测如果它曾经
将
有了这样一个特性,它将以德尔菲棱镜的形式出现。
|
3
5
好啊。WTF当天代码:) 如何得到一些基本上类似于三元/条件函数的东西。
是的,它或多或少是无用的,但它表明它是可以做到的。 |
4
5
重载的ifthen函数上有许多可用的简单类型句柄。
这个模型如Andreas所评论的示例中所示下降,但对于简单的类型,这是非常合理的。如果遵循delphi/pascal方法惯例,而不是屈从于使用尽可能少的字符量的C方法。
我个人不希望看到条件运算符(即
|
5
4
Delphi中没有条件运算符,我严重怀疑是否会有条件运算符,但您可能永远不会知道。您可以随时在Embarcadero发出请求。 另一种方法是定义iff函数:
其中,xxx是desirec类型。 用作:
为什么不实现条件运算符有几个原因。其中之一是可读性。Pascal(以及Delphi)比C语法语言更注重可读性,后者更注重字符能力(尽可能多地了解每个字符的信息)。条件运算符功能强大,但(根据某些内容)不可读。但如果你看看德尔菲的(恐惧)陈述…(不用多说了)。 另一个原因是不需要条件运算符。这是真的。但是,还有更多的不需要实现的内容。 最后,这只是一个品味问题。 但是,如果您只想评估一个参数,则可以始终使用以下参数,这违反了字符幂概念的可读性: [过度设计模式]
[/过度设计模式] |
6
3
|
7
1
实际上,对于字符串,可以使用: 斯特劳斯 功能:
查看Delphi帮助维基: http://docwiki.embarcadero.com/VCL/en/StrUtils.IfThen 它完全满足你的需要。 |
8
1
另一种选择是使用泛型:
这是非常可读的:
注:如Alan Bryant(2004年6月21日上午7:26:21)在 QR 8451 ,这将始终评估所有3个参数-因此请注意,它不是真正的三元运算符。 |
9
0
更好的是,支持多个数据类型和结果的重载IIF(inline if)。 |
10
0
绝地代码库(JCL)使用一组名为iff()的函数实现了三元运算符。有关文档,请参见此处: http://wiki.delphi-jedi.org/wiki/JCL_Help:Iff@Boolean@Boolean@Boolean 要下载JCL,您可以访问以下站点: |
jlandercy · PostgreSQL参数化窗口大小 7 年前 |