study record
[Swift] 스위프트 프로그래밍 - 프로퍼티 본문
프로퍼티
프로퍼티는 크게 저장 프로퍼티와 연산 프로퍼티, 타입 프로퍼티로 나눌 수 있다.
저장 프로퍼티는 인스턴스의 변수 또는 상수를 의미한다. 구조체와 클래스에서만 사용할 수 있다.
연산 프로퍼티는 값을 저장한 것이 아니라 특정 연산을 실행한 결괏값을 의미한다. 클래스, 구조체, 열거형에서 쓰일 수 있다.
저장 프로퍼티와 연산 프로퍼티는 특정 타입의 인스턴스에 사용되는 것을 뜻하지만 특정 타입에 사용되는 프로퍼티가 있다. → 타입 프로퍼티
저장 프로퍼티
클래스 또는 구조체의 인스턴스와 연관된 값을 저장한다.
구조체는 프로퍼티에 맞는 이니셜라이저를 자동으로 제공한다. 전달인자로 초깃값을 넘긴다. 초깃값을 이미 할당했다면 넘길 필요는 없다.
클래스는 저장 프로퍼티에 초깃값을 지정하거나 사용자 정의 이니셜라이저를 구현해야한다.
옵셔널이라면 굳이 초깃값을 넣어주지 않아도 된다. 이니셜라이저에서 값을 할당하지 않아도 된다.
지연 저장 프로퍼티
지연 저장 프로퍼티는 호출이 있어야 값을 초기화하며, lazy 키워드를 사용한다.
var 키워드로만 변수가 정의 가능하다.
지연 저장 프로퍼티는 주로 복잡한 클래스나 구조체를 구현할 때 많이 사용된다. 클래스 인스턴스의 저장 프로퍼티로 다른 클래스 인스턴스를 할당해야 할 때 모든 프로퍼티를 사용할 필요가 없다면 지연 저장 프로퍼티 사용하는 것이 좋다. 불필요한 성능 저하나 공간 낭비를 줄일 수 있다.
연산 프로퍼티
연산 프로퍼티는 실제 값을 저장하는 프로퍼티가 아니라 특정 상태에 따른 값을 연산하는 프로퍼티이다.
하나의 프로퍼티에 접근자와 설정자가 모두 모여있고, 해당 프로퍼티의 역할을 명확하게 표현할 수 있다.
'Swift > 스위프트 프로그래밍' 카테고리의 다른 글
[Swift] 스위프트 프로그래밍 - 클로저 (0) | 2021.11.08 |
---|---|
[Swift] 스위프트 프로그래밍 - 인스턴스 생성과 프로퍼티 (0) | 2021.11.07 |
[Swift] 스위프트 프로그래밍 - 구조체와 클래스의 차이와 선택 (0) | 2021.09.28 |
[Swift] 스위프트 프로그래밍 - 구조체 (0) | 2021.09.28 |
[Swift] 스위프트 프로그래밍 - 구조체와 클래스 (0) | 2021.09.28 |