Memberwise initializer
Youngminah opened this issue · 0 comments
Youngminah commented
Memberwise initializer
- 구조체 유형 은 자체 사용자 정의 이니셜라이저를 정의하지 않는 경우 자동제공
- 기본 이니셜라이저와 달리 구조체는 기본값이 없는 저장된 속성이 있더라도 Memberwise initializer가 작용
struct Size {
var width = 0.0, height = 0.0
}
let twoByTwo = Size(width: 2.0, height: 2.0)
구조체가 이니셜라이져를 쓸 때는 언제?
- 꼭 Memberwise 이니셜라이져가 아니더라도 여러가지로 활용해서 구조체의 이니셜라이져를 쓸 수 있음
struct Celsius {
var temperatureInCelsius: Double
init(fromFahrenheit fahrenheit: Double) {
temperatureInCelsius = (fahrenheit - 32.0) / 1.8
}
init(fromKelvin kelvin: Double) {
temperatureInCelsius = kelvin - 273.15
}
init(_ celsius: Double) {
temperatureInCelsius = celsius
}
}
let bodyTemperature = Celsius(37.0)