3

今日、たまたまDelphi 7を使用して、このようなクラス定義を持つコードをコンパイルしました

type TAudioStream = class helper of TStream;

そして、驚いたことに、コンパイラは吐き出します

「システム ユニットが最新でないか、壊れています: 'TClassHelperBase' がありません」 .

Delphi7 では、helper単語の使用法がすでに予約されているようです。

Delphi は、Delphi 8 でヘルパー クラスを導入しました。これらは、VCL を .Net にバインドするためのものでした。それで、Delphi7は先見の明がありますか?

4

3 に答える 3

4

これが本当の質問かどうかはわかりません。将来の実装のためにキーワードを予約することは一般的な方法です。Delphi 8 のロードマップと計画されている機能は、Delphi 7 のリリース日に指定する必要があります。そのため、この場合、Delphi 7 は先見の明があると思います。

于 2011-06-23T08:10:46.497 に答える
1

言語設計者が将来の使用のために特定の単語を予約することは非常に一般的です。classたとえば、 andinterfaceは、JavaScript の予約語であり、もう 10 年も… とはいえ、あと 2、3 年は使用されないと予想されています。使用されることは想定されていませんgotoが、Java では予約語です。

また、コンパイラの作成者が将来の使用のために機能を実装することも非常に一般的です。たとえば、ジェネリックは、javacJava 5 まで言語仕様に追加されていませんでしたが、Sun の Java 1.2 コンパイラで既に実装されていました。

于 2011-06-23T08:27:12.963 に答える
1

Delphi 7 には「.Net プレビュー コンパイラ」が含まれていたことを思い出してください。Delphi 7 は、いくつかの今後の機能を認識しており、明らかに、それらの機能の実装についてもある程度認識していました。特定のものがシステム ユニットにあることを期待し、それらが存在しない場合に文句を言うことを十分に認識していました。

于 2011-06-23T14:15:06.897 に答える