イニシャライザが初期化する型よりも低い、または同じアクセスレベルを、イニシャライザに指定することができます。唯一の例外は(Required Initializers で定義されているように)required イニシャライザです。requied イニシャライザは、属するクラスと同じアクセスレベルにする必要があります。

関数やメソッドのパラメータと同様に、イニシャライザのパラメータの型をイニシャライザ自体のアクセスレベルよりも非公開にすることはできません。

デフォルトイニシャライザ

Default Initializers で説明されているように、プロパティすべてにデフォルト値があり、かつイニシャライザが 1 つも無い構造体やベースクラスに対して、引数が無いデフォルトイニシャライザを Swift は自動的に提供します。

型が public として定義されてる場合を除いて、デフォルトイニシャライザは初期化する型と同じアクセスレベルになります。public として定義された型では、デフォルトイニシャライザは internal になります。public の型を別のモジュールで使用するときに、引数が無いイニシャライザで初期化できるようにしたい場合には、引数が無い public のイニシャライザを型の定義の一部として明示的に指定する必要があります。

構造体型のデフォルトメンバーワイズイニシャライザ

構造体のストアドプロパティに private がある場合、構造体型のデフォルトメンバーワイズイニシャライザは private とみなされます。そうでなければ、イニシャライザのアクセスレベルは internal になります。

上のデフォルトイニシャライザと同様に、public の構造体型を別のモジュールで使用するときに、メンバーワイズイニシャライザで初期化できるようにしたい場合には、public のメンバーワイズイニシャライザを型の定義の一部として指定する必要があります。


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.