iOSエンジニアのつぶやき

毎朝8:30に iOS 関連の技術について1つぶやいています。まれに釣りについてつぶやく可能性があります。

【Swift】アクセスコントロールを学ぼう

本日はちょっと記事を書く時間が取れなかったので、初学者向けの内容で Swift のアクセスコントロールについて紹介します🏃🏻‍♂️

一覧

結論 Swift には下記のようなアクセス修飾子があります。ちなみにアクセス修飾子を付けない場合はデフォルトで internal になります。

アクセス修飾子 内容
open 別モジュールからも呼び出せることができる + 継承やオーバーライドも可能
public 別モジュールからも呼び出せることができる + 継承やオーバーライドはできない
internal 同モジュールであれば呼び出せることができる
fileprivate 同ファイルであれば呼び出せることができる
private 同スコープ内なら呼び出せることができる

そもそもなんで必要なの?

初学者の場合、これらアクセス修飾子がなぜ必要なのか疑問を抱くと思いますが、チーム開発を経験するとこれらの恩恵を知ることができると思います。例えば、あるプロパティを internal で定義した場合、そのプロパティは同一モジュールであれば、どのクラスからも参照することが可能になります。一見するとなんの問題もなさそうに感じますが、他の人がなにも知らない状態でこれらを見た場合、そのプロパティがどこかで参照されている可能性があるということを考慮した上で処理を追う必要があります。またその他にも、誤って他のクラスがプロパティの値を変更できないようにしておくという意味でもアクセスコントロールは重要になってきます。

てな感じで本日も以上になります🍺

その他の記事

yamato8010.hatenablog.com

yamato8010.hatenablog.com

yamato8010.hatenablog.com