微妙に覚えきれていないので調べた。swift実践入門から検討したほうが良い順にしてみる。スコープが小さい順で良いはず
private
対象の要素が属しているスコープ内のアクセスのみ許可する
fileprivate
同一ソースファイル内のアクセスのみを許可する
同一ファイル内で複数のクラスを記載しているときに使うもの?
internal
同一モジュール内からのみアクセスを許可する
普通の(単純なという意味)アプリならこれで十分そう
public
モジュール内外のすべてのアクセスを許可する。ただしモジュール外で継承したりオーバーライドしたりはできない
publicとopenは外部モジュールからの利用を想定するときに使うものとして考えていれば良さそう
open
モジュール内外のすべてのアクセスを許可する
継承やオーバーライドしたいときに使うイメージ
引用: