안녕하세요. 도미닉입니다.
오늘은 Initializer를 확장하는 방법을 알아보겠습니다.
구조체인 경우 선언한 프로퍼티에 따라 자동으로 Initializer 가 생성됩니다.
Initializer에 대해서 궁금하시면 아래 링크 참고 부탁드립니다.
http://kiljh.me/2019/06/09/Initializer/
자동으로 생성된 Initializer 는 별도로 init 메소드 선언 시 사용할 수 없게 됩니다.
하지만 extension 에 init 메소드를 선언하면 자동으로 생성된 Initializer 도 사용할 수 있습니다.
그 예를 보여드리겠습니다.
struct1 객체를 생성할 때는 extension 으로 직접 만든 init 메소드를 사용하였습니다.
struct2 객체를 생성할 때는 기본으로 생성된 memberwise Initializer 를 사용하였습니다.
정리
extension 을 활용해 자동 생성된 initializer 와 직접 만든 init 메소드를 함께 활용할 수 있는 방법을 알아봤습니다.
간단하지만 이렇게 동작한다는게 신기했습니다.
도움이 됬으면 좋겠습니다.
읽어주셔서 감사합니다.