アクセスコントロール
アクセスコントロールとは、モジュール内の型や型の要素に対する外部からのアクセスを制限することを指します。
アクセスレベル
アクセスコントロールをどの範囲で制限するかを下記のキーワードで決定できます。
open
モジュール内外の全てに対してアクセス許可を出す。
public
基本的にはopenと同じだが、モジュール外で継承したりオーバーライドはできない。
internal
同一モジュール内のアクセスに限りアクセス許可を出す。
fileprivate
同一のソースファイル内のアクセスのみを許可を出す。
private
対象の要素が属しているスコープに限りアクセス許可を出す。
デフォルトのアクセスレベル
型全体のデフォルトのアクセルレベル → internal
型全体のアクセスレベルがprivate、fileprivateに指定されている場合の型内部の要素 → 型のアクセスレベルと同一
型全体のアクセスレベルがopen、public、internalに指定されている場合の型内部の要素 → internal