はじめに
Swiftでコーディングする際、アクセス修飾子を適当に使っちゃってないですか?
雰囲気で使いわけてレビューで突っ込まれてないですか?
なぜ定数(変数)を使うのか、なぜその修飾子を使うのか理解して使うために自分なりにまとめたので、よかったら参考にしてください!
変数と定数
let(定数)
値を変更する可能性がない場合に使う
static let
全インスタンスから共通で利用できる
var(変数)
後から値を変更することができる
let hoge = hogehoge
static let hoge = hogehoge
var hoge = hogehoge
アクセス修飾子
Set
入れた値を使って他のプロパティの値に渡すことができる
Get
他のプロパティの値を受け取るのことができる
追記: getterは同一モジュール内、setterは同一スコープ内からアクセスできる
(@takehito-koshimizu さんありがとうございます🙏)
private(set) var hoge = hogehoge
Public
別モジュールから呼び出せるが継承やオーバーライドが不可能
Private
同スコープ内からのみ呼び出せる
fileprivate
同じfile内であれば呼び出せる
private let hoge = hogehoge
private var hoge = hogehoge
public let hoge = hogehoge
public var hoge = hogehoge
fileprivate let hoge = hogehoge
fileprivate var hoge = hogehoge
参考になりましたでしょうか?よければLGTMくれると僕がめっちゃ喜びます!