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)
        }
    }
}