0
type
    TPerson = class(TObject)
        name : string;
        constructor create(name : string);
    end;

コンパイラエラーをトリガーします。

self明確にするために、またはthisポインタ/参照で十分だと思います。それで、そうすることの利点は何ですか?

編集:もう1つの質問ですが、このポリシーを展開する他の言語を教えていただけますか?

4

1 に答える 1

3

パラメータ名がクラスメンバーをシャドウする場所での名前の衝突を防ぐため。このように行うことはできず、すべての名前が明確です。

Pascalは束縛と規律の言語であることを忘れないでください; これらは、一般的なエラーを防止するように設計されています。

認識された問題を防ぐためのもう1つのオプションは、Pythonが行うことです。インスタンスメンバーの資格をthisまたはで義務付け、すべてのインスタンスメンバーアクセスの前に。を付けるself必要selfあります。

しかし、私はその制限のある他の言語を知りません。しかし、いくつかの言語機能は確かにユニークです。たとえば、チェックされた例外もあります。

于 2010-01-15T16:00:30.320 に答える