【Swift】アクセスコントロールを学ぼう
本日はちょっと記事を書く時間が取れなかったので、初学者向けの内容で Swift
のアクセスコントロールについて紹介します🏃🏻♂️
一覧
結論 Swift
には下記のようなアクセス修飾子があります。ちなみにアクセス修飾子を付けない場合はデフォルトで internal
になります。
アクセス修飾子 | 内容 |
---|---|
open | 別モジュールからも呼び出せることができる + 継承やオーバーライドも可能 |
public | 別モジュールからも呼び出せることができる + 継承やオーバーライドはできない |
internal | 同モジュールであれば呼び出せることができる |
fileprivate | 同ファイルであれば呼び出せることができる |
private | 同スコープ内なら呼び出せることができる |
そもそもなんで必要なの?
初学者の場合、これらアクセス修飾子がなぜ必要なのか疑問を抱くと思いますが、チーム開発を経験するとこれらの恩恵を知ることができると思います。例えば、あるプロパティを internal
で定義した場合、そのプロパティは同一モジュールであれば、どのクラスからも参照することが可能になります。一見するとなんの問題もなさそうに感じますが、他の人がなにも知らない状態でこれらを見た場合、そのプロパティがどこかで参照されている可能性があるということを考慮した上で処理を追う必要があります。またその他にも、誤って他のクラスがプロパティの値を変更できないようにしておくという意味でもアクセスコントロールは重要になってきます。
てな感じで本日も以上になります🍺