struct A {
var property: String
}
var a = A(property: "a")
var b = a
b.property = "b"
print(a.property, b.property) // "a" "b"
struct Media {
let name: String
let series: Int
lazy var rate: Double = 4.0 // 구조체, 클래스 선언 당시에 초기값이 필요하다.
}
let squidgame = Media(name: "오징어게임", series: 8) // rate는 초기화 되지 않음
squidgame.rate // 여기서 초기화 됨
struct User {
private var name: String
private var age: Int
static private var key = "user"
var getOrChangeName: String {
get {
return self.name
}
set {
self.name = newValue
}
}
// 물론 타입 멤버도 이렇게 연산형으로 활용가능하다.
static var getOrSaveUser {
get {
return UserDefaults.standard.string(forKey: User.key)
}
set {
UserDefaults.standard.setValue(newValue, forKey: User.key)
}
}
}