🦔
【DAY11】100 Days of SwiftUI -access control, static properties and meth
はじめに
iOSアプリ界隈で(たぶん)有名なPaul Hudsonさんが無料で公開しているSwiftUIの100日学習コースを進めてみます。学習記録及び備忘録がてらにつらつらと書いてみます。
100 Days of SwiftUI
学んだこと
序盤はSwiftUIは関係なくSwiftという言語の言語仕様のお話。
アクセスコントロール
一般的な構造体と同じ。public, private, fileprivateなどがある。例えば以下のような銀行口座の構造体があるとする。
struct BankAccount {
var funds = 0
mutating func deposit(amount: Int) {
funds += amount
}
mutating func withdraw(amount: Int) -> Bool {
if funds >= amount {
funds -= amount
return true
} else {
return false
}
}
}
この場合、外部から残高(funds)を変更できてしまうため
private var funds = 0
とする必要がある。ただしprivateでは参照もできなくなってしまうため上記の例では
private(set) var funds = 0
とするのが適切。
staticプロパティ/メソッド
一般的な書き方と同じ。
struct School {
static var studentCount = 0
static func add(student: String) {
print("\(student) joined the school")
studentCount += 1
}
}
School.add(student: "Taylor Swift") // 出力: Taylor Swift joined the school
print(School.studentCount) // 出力: 1
Discussion