let pizzaInInches: Int = 16
let numberOfPeopel: Int = 12
let slicesPerPerson: Int = 4
var numberOfSlices: Int {
get {
return pizzaInInches - 4
}
}
var numberOfPizza: Int {
get {
let numberOfPeopleFedPerPizza = numberOfSlices / slicesPerPerson
return numberOfPeopel / numberOfPeopleFedPerPizza
}
}
print(numberOfPizza)
위와 같이 computed property와 getter를 사용해 피자의 사이즈, 사람의 수,
한 사람이 먹을 피자조각 수를 바꾸더라도 주문해야 할 피자 판수를 구할 수 있다.
let pizzaInInches: Int = 16
var numberOfPeopel: Int = 12
let slicesPerPerson: Int = 4
var numberOfSlices: Int {
get {
return pizzaInInches - 4
}
}
var numberOfPizza: Int {
get {
let numberOfPeopleFedPerPizza = numberOfSlices / slicesPerPerson
return numberOfPeopel / numberOfPeopleFedPerPizza
}
set {
let totalSlices = numberOfSlices * newValue
numberOfPeople = totalSlices * slicesPerPerson
}
}
numberOfPizza = 4
print(numberOfPeople) // 12
- 위의 예제에서는 'numberOfPeople' property를 상수에서 변수로 바꾼다.
- setter 내부에서 'numberOfPizza'의 새로운 값 설정을 위한 'newValue'를 다음과 똑같이 써야한다.