프로퍼티의 종류에 대해서 Araboza
저장 프로퍼티 (Stored Property)
지연 저장 프로퍼티 (Lazy Stored Property)
처음 사용되는 시점에 초기화
가 이루어진다. (프로퍼티를 처음 사용해 주어야 초기화)struct GamingMouse {
var companyName: String = "로지텍"
var productName: String = " G502X"
lazy var productInfo: String = self.companyName + self.productName
}
struct GamingMouse {
var companyName: String = "로지텍"
var productName: String = " G502X"
lazy var productInfo: String = self.companyName + self.productName
}
var gamingMouse = GamingMouse()
gamingMouse.productname = " G PRO Superlight"
print(gamingMouse.productInfo) // 로지텍 G PRO Superlight
lazy let
은 사용 불가)연산 프로퍼티 (Computed Property)
struct PersonA {
var koreanAge: Int
var americanAge: Int {
get {
return koreanAge - 1
}
set(newValue) {
koreanAge = newValue + 1
}
}
}
var minseokAge = PersonA(koreanAge: 30)
minseokAge.americanAge = 26
print(minseokAge) // PersonA(koreanAge: 27)
get
: 값을 얻어올 때 호출set
: 값이 설정되었을 때 호출get
만 정의) (한 쪽으로만 의존적인 관계)struct PersonB {
var name: String {
willSet(newValue // 생략 가능) {
// some code
}
didSet(oldValue // 생략 가능) {
// some code
}
}
}
willSet
: 값이 변경되기 직전 호출didSet
: 값이 변경된 직후 호출타입 자체의 프로퍼티 ( 인스턴스를 만들지 않아도 사용 가능)
static을 붙여 사용
struct SomeStucture {
static var someProperty: Int = 10
}
let number = SomeStucture.someProperty