[swift] 연산 프로퍼티 선언 방법

스위프트에서는 연산 프로퍼티를 선언하여 클래스, 구조체, 열거형 등에서 계산된 값을 제공할 수 있습니다. 이번 블로그에서는 스위프트에서 연산 프로퍼티를 선언하는 방법을 살펴보겠습니다.

연산 프로퍼티란?

연산 프로퍼티는 실제로 값을 저장하지는 않지만, 특정한 연산을 통해 값을 반환하는 프로퍼티를 말합니다. Getter와 Setter 메서드를 사용하여 값을 가져오거나 설정할 수 있으며, 실제로 값을 가지고 있지 않지만 다른 프로퍼티의 값을 기반으로 연산을 수행할 수 있습니다.

연산 프로퍼티의 선언

연산 프로퍼티는 var 키워드로 선언하고, { get } 또는 { get set } 블록을 사용하여 프로퍼티의 getter와 setter를 정의합니다.

struct Circle {
    var radius: Double
    
    var area: Double {
        get {
            return Double.pi * radius * radius
        }
    }
}

위의 예제에서 Circle 구조체에는 radiusarea 두 개의 프로퍼티가 있습니다. area는 연산 프로퍼티로, getter를 통해 원의 넓이를 계산하여 반환합니다.

{ get set } 블록을 사용하여 setter를 정의할 수도 있습니다. 아래는 Circle 구조체에서 diameter를 연산 프로퍼티로 추가한 예제입니다.

struct Circle {
    var radius: Double
    
    var diameter: Double {
        get {
            return radius * 2
        }
        set(newDiameter) {
            radius = newDiameter / 2
        }
    }
}

연산 프로퍼티의 사용

연산 프로퍼티는 일반 저장 프로퍼티와 마찬가지로 사용할 수 있습니다.

var circle = Circle(radius: 5.0)
let area = circle.area // 78.54
circle.diameter = 10.0
print(circle.radius) // 5.0

요약

이번 포스트에서는 스위프트에서 연산 프로퍼티를 선언하는 방법을 살펴보았습니다. 연산 프로퍼티를 사용하면 값의 계산을 위한 별도의 메서드 호출 없이 간결하게 계산된 값을 사용할 수 있으며, 값을 읽고 쓰는 동작을 커스터마이징할 수 있습니다.

더 많은 정보는 스위프트 공식 문서를 참고할 수 있습니다.