[TIL] 연산프로퍼티 Get, Set 차이점

Eden·2025년 5월 29일

Swift에서 연산 프로퍼티(Computed Property)는 실제로 값을 저장하지 않고 계산을 통해 값을 제공하거나 설정합니다. 이때 사용하는 것이 바로 getset입니다.


get - 값을 반환하는 계산 로직

항목설명
정의 위치연산 프로퍼티 내부
역할프로퍼티의 값을 읽을 때 계산된 결과를 반환
반환값 필수 여부✅ 필수 (return으로 값 제공)

📌 예시:

struct Rectangle {
    var width: Double
    var height: Double

    var area: Double {
        get {
            return width * height
        }
    }
}

area는 저장된 값이 아닌, width * height를 계산해서 반환합니다.


✅ set - 값을 설정하는 계산 로직

항목설명
정의 위치연산 프로퍼티 내부
역할프로퍼티에 새 값을 설정할 때 원하는 로직 실행
입력값 키워드기본값은 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 vs set 비교 요약

항목getset
사용 시점값을 읽을 때값을 쓸 때
반환값 필요✅ 있음❌ 없음
키워드get, returnset, newValue
목적계산된 값을 제공할당된 값을 바탕으로 다른 값을 설정

🎯 추가 팁

get만 있으면 읽기 전용(Read-Only) 연산 프로퍼티가 됩니다.
set만 정의할 수는 없습니다. 항상 get이 있어야 합니다.
set에서 newValue 대신 사용자 정의 매개변수를 사용할 수 있습니다:

var number: Int {
    get { return internalValue }
    set(newNumber) { internalValue = newNumber }
}

쉬운예제

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

profile
iOS Dev

0개의 댓글