Initializer Requirements

작성일

Initializer Requirements

기본

protocol ProtocolName {
  init(param)
  init?(param)
  init!(param)
}

활용

protocol Figure {
  var name: String { get }
  init(name: String)
}

struct Rectangle: Figure {
  var name: String
}

멤버이니셜 라이저가 자동으로 생성된다. 때문에 자동으로 생성자를 만들어줘서 프로토콜의 생성자요구치를 충족시킨다.

protocol Figure {
  var name: String { get }
  init(name: String)
}

class Rectangle: Figure {
  var name: String
  
  required init(name: String) {
    self.name = name
  }
}

class에서는 상속을 고려해야한다. 떄문에 required로 구현해야한다.