다음은 놀이터에서 가져온 샘플 코드입니다. 내가 이해하지 못하는 이유는 하위 클래스의 b
변수가 var 유형이어야하고 let이 될 수 없기 때문입니다. 누군가 나를 이해하도록 도와 줄 수 있습니까?파생 클래스의 편의 초기화 프로그램에서 상수 속성을 초기화 할 수 없습니다.
class Base1 {
init() { }
}
class Sub1: Base1 {
let b: Int
override init() {
super.init()
}
convenience init(b: Int) {
self.b = b // Cannot assign to property: 'b' is a 'let' constant
self.init()
}
}
단지 : @Martin R 다른 지정 초기화를 작성하고 기본값을 제공하기 위해, 오버라이드 (override) 초기화하기 전에 편의를 위해 사용하는, 의견 중 하나에 제안
아니면 더 좋은 방법이며, 문서 저장 프로퍼티에 따라 override init() 대신에'init (b : Int)'에서'편의성'을 사용하는 실수가 하나있었습니다. –