import Foundation
var width: Float = 1.5
var height: Float = 2.3
var bucketOfPaint: Int {
get {
let area = width * height // 3.45
let areaCoveredPerBucket: Float = 1.5
let numberOfBuckets = area / areaCoveredPerBucket // 2.3
let roundedBuckets = ceilf(numberOfBuckets) // 3
return Int(roundedBuckets)
}
}
print(bucketOfPaint) // 3
페인트 통은 정수단위 이므로 ceilf를 사용해 소숫점 아래의 수를 올림한다. 그리고 Int()이니셜라이징으로 data type을 Int로 바꾸어준다.
import Foundation
var width: Float = 1.5
var height: Float = 2.3
var bucketOfPaint: Int {
get {
let area = width * height // 3.45
let areaCoveredPerBucket: Float = 1.5
let numberOfBuckets = area / areaCoveredPerBucket // 2.3
let roundedBuckets = ceilf(numberOfBuckets) // 3
return Int(roundedBuckets)
}
set {
let areaCanCover = Double(newValue) * 1.5
print("This amount of paint can cover an area of \(areaCanCover)")
}
}
bucketOfPaint = 4
setter 내부에서 newValue를 사용해 값을 구할 수 있다.