getter와 setter는 **연산 프로퍼티(Computed Property)**에서 값을 읽거나(set) 설정할 수 있도록 해주는 메서드 블록입니다.
get→ 값을 읽을 때 실행set→ 값을 변경할 때 실행
struct Temperature {
var celsius: Double
var fahrenheit: Double {
get {
return celsius * 1.8 + 32
}
set {
celsius = (newValue - 32) / 1.8
}
}
}fahrenheit는 연산 프로퍼티get은 값을 읽을 때,set은 값을 설정할 때 호출set의 매개변수는 기본적으로newValue라는 키워드 사용
var temperatureInFahrenheit: Double {
get {
return celsius * 1.8 + 32
}
set(inputTemp) {
celsius = (inputTemp - 32) / 1.8
}
}newValue대신 직접 이름을 정할 수 있음
var area: Double {
return width * height
}get만 존재하는 경우, 읽기 전용get키워드 생략 가능
- 저장 프로퍼티는
get/set을 구현할 수 없음 var name: String이런 건 내부에get/set을 넣지 않음
var area: Double {
return width * height
}
func area() -> Double {
return width * height
}- 같은 동작을 할 수 있음
- **"값처럼 사용하고 싶다"**면 연산 프로퍼티
- **"동작(행위)처럼 보이고 싶다"**면 함수
| 항목 | 설명 |
|---|---|
get |
값을 읽을 때 동작 |
set |
값을 저장할 때 동작 (입력은 newValue) |
| 읽기 전용 | get만 있는 연산 프로퍼티 |
| 메모리 | 실제 값 저장 X, 계산 결과 반환 |
연산 프로퍼티는 내부 로직을 숨기고 값처럼 사용할 수 있어 코드 가독성과 캡슐화에 유리합니다.