Swift에서 연산 프로퍼티(Computed Property)는 실제로 값을 저장하지 않고 계산을 통해 값을 제공하거나 설정합니다. 이때 사용하는 것이 바로 get과 set입니다.
get - 값을 반환하는 계산 로직| 항목 | 설명 |
|---|---|
| 정의 위치 | 연산 프로퍼티 내부 |
| 역할 | 프로퍼티의 값을 읽을 때 계산된 결과를 반환 |
| 반환값 필수 여부 | ✅ 필수 (return으로 값 제공) |
struct Rectangle {
var width: Double
var height: Double
var area: Double {
get {
return width * height
}
}
}
area는 저장된 값이 아닌, width * height를 계산해서 반환합니다.
| 항목 | 설명 |
|---|---|
| 정의 위치 | 연산 프로퍼티 내부 |
| 역할 | 프로퍼티에 새 값을 설정할 때 원하는 로직 실행 |
| 입력값 키워드 | 기본값은 newValue (사용자 지정 가능) |
struct Temperature {
var fahrenheit: Double = 32
var celsius: Double {
get {
return (fahrenheit - 32) * 5 / 9
}
set {
fahrenheit = newValue * 9 / 5 + 32
}
}
}
외부에서 celsius에 값을 할당하면, 내부적으로 fahrenheit가 계산되어 설정됩니다.
| 항목 | get | set |
|---|---|---|
| 사용 시점 | 값을 읽을 때 | 값을 쓸 때 |
| 반환값 필요 | ✅ 있음 | ❌ 없음 |
| 키워드 | get, return | set, newValue |
| 목적 | 계산된 값을 제공 | 할당된 값을 바탕으로 다른 값을 설정 |
get만 있으면 읽기 전용(Read-Only) 연산 프로퍼티가 됩니다.
set만 정의할 수는 없습니다. 항상 get이 있어야 합니다.
set에서 newValue 대신 사용자 정의 매개변수를 사용할 수 있습니다:
var number: Int {
get { return internalValue }
set(newNumber) { internalValue = newNumber }
}

결과가 어떻게 나오는지 보시면서 익혀보세요!