今天我碰巧使用Delphi 7编译了一个像这样的类定义的代码
type TAudioStream = class helper of TStream;
,令我惊讶的是,编译器吐出了
“系统单元已过期或已损坏:缺少'TClassHelperBase'”。
看起来Delphi7已经保留了helper
字的保留用法。
Delphi在Delphi 8中引入了Helper类。它们用于将VCL绑定到.Net。那么,Delphi7是否具有先见之明?
答案 0 :(得分:4)
我不确定这是否是一个真正的问题。为将来实施保留关键字是一种常见做法。 Delphi 8的路线图和计划的功能应该在Delphi 7的发布日期指定。所以是的,我认为Delphi 7在这种情况下具有先见之明。
答案 1 :(得分:1)
语言设计者保留某些单词以供将来使用是很常见的。例如,class
和interface
已经成为JavaScript中的保留词......现在已经十年了......即使它们预计不会再用几年了。 goto
是Java中的保留字,即使从不期望使用它。
编译器编写者实现将来使用的功能也很常见。例如,泛型已经在Sun的Java 1.2 javac
编译器中实现,即使它们在Java 5之前没有添加到语言规范中。
答案 2 :(得分:1)
请记住,Delphi 7包含“.Net预览编译器”。 Delphi 7意识到了一些即将推出的功能,显然,它甚至有点意识到这些功能的实现 - 它足够了解系统单元中的某些事情,并在它们不在时抱怨。