it-swarm-ja.com

Swift)のクラスに対する構造と列挙の静的プロパティと暗黙の「自己」プロパティ

私は現在Swift言語のドキュメントを読んでいて、これらの文章を メソッドに関する章 で見つけました:

同様に、構造体と列挙の型メソッドは、型名の接頭辞なしで静的プロパティの名前を使用して静的プロパティにアクセスできます。

型メソッドの本体内では、暗黙のselfプロパティは、その型のインスタンスではなく、型自体を参照します。構造体と列挙型の場合、これは、selfを使用して静的プロパティと静的メソッドパラメータを明確にすることができることを意味します。

これらのルールはクラスとクラスのインスタンスにも有効であるという印象を受けました。私の質問は、なぜ構造体と列挙型だけが言及されているのですか?これはドキュメンタリーの偶発的な省略ですか、それとも実際にクラスとそのインスタンスに異なるルールが適用されますか?

3
TheBaj

その理由は、提示された例がクラスであるためだと思います。したがって、これが構造体や列挙型でも機能するという事実を指摘することが重要だと著者は感じました。

この本の最新版は、その一節を言い換えています。

より一般的には、型メソッドの本体内で使用するany非修飾メソッドおよびプロパティ名は、他の型レベルのメソッドおよびプロパティを参照します。タイプメソッドは、タイプ名をプレフィックスとして付けることなく、他のメソッドの名前で別のタイプメソッドを呼び出すことができます。同様に、構造体と列挙の型メソッドは、型名の接頭辞なしで型プロパティの名前を使用して型プロパティにアクセスできます。

-- Swiftプログラミング言語 (強調は私が追加しました。)

0
Daniel T.