앞에서 소개드린 구조체 안에 내용 중에 프로퍼티에 대해서 먼저 알아보겠습니다.
프로퍼티는 저장 프로퍼티, 연산 프로퍼티, 타입 프로퍼티로 나뉘어집니다.
첫번째로 저장 프로퍼티는 가변 프로퍼티와 불변 프로퍼티로 나뉩니다.
구조체는 기본적으로 모든 저장 프로퍼티를 포함하는 이니셜라이저가 자동으로 생성됩니다.
위에 Cat 구조체에서 그것을 사용해보았습니다.
저장 프로퍼티는 기본값을 설정할 수도 있으며 기본값이 있는 경우 이니셜라이저 없이 인스턴스 생성이 가능합니다.
만약 저장 프로퍼티가 옵셔널이면 해당 프로퍼티는 초기값을 넣어주지 않아도 됩니다.
지연 저장 프로퍼티라는 것에 대해서 알려드리겠습니다.
저장 프로퍼티는 호출이 있어야 값을 초기화시킵니다. 인스턴스가 생성될 때 초기화되고 고정되는 불변 프로퍼티에는 적용될 수 없습니다.
가변 프로퍼티 앞에 lazy 를 붙여서 선언할 수 있으며 처음 프로퍼티에 접근하면 초기화됩니다.
두번째 프로퍼티는 연산 프로퍼티입니다.
프로퍼티를 선언할 때 get set 을 추가해놓으면 값이 변경되거나 호출될 때 특정 연산이 진행된 뒤에 프로퍼티를 반환하는 형태입니다.
세번째 프로퍼티는 타입 프로퍼티입니다.
타입 프로퍼티는 저장 타입 프로퍼티와 연산 타입 프로퍼티로 나뉘어집니다.