クラスや構造体、列挙型を利用できるアクセスコンテキストであれば、クラスや構造体、列挙型を拡張することができます。エクステンションで追加される型のメンバは、拡張されるオリジナルの型で宣言されている型のメンバーと同じデフォルトアクセスレベルになります。public あるいは internal の型を拡張する場合には、追加する新しい型のメンバはデフォルトアクセスレベルが internal になります。private の型を拡張する場合には、追加する新しい型のメンバはデフォルトアクセスレベルが private になります。

あるいは、エクステンション内で定義されたすべてのメンバに新しいデフォルトアクセスレベルを設定するために、エクステンションに明示的なアクセスレベル(例えば、private extension)を付けることができます。個々の型のメンバに対して、エクステンション内でこの新しいデフォルトをオーバーライドすることができます。

エクステンションでプロトコル準拠を追加

プロトコル準拠を追加するためにエクステンションを使用する場合には、エクステンションに対して明示的なアクセスレベルを指定することはできません。エクステンション内で個々のプロトコル要件の実装に対してデフォルトアクセスレベルを指定するために、プロトコルの独自のアクセスレベルを代わりに使用します。


Portions of this page are translations based on work created and shared by Apple and used according to terms described in the Creative Commons Attribution 4.0 International License.