[swift] 속성(Properties)
Swift에서는 속성이 주어진 값에 대해서 접근할 때 사용되는 특별한 방법으로 정의됩니다. 속성은 값에 접근하기 위한 게터(getter)와 값을 설정하기 위한 세터(setter)를 가질 수 있습니다. 또한, 프로퍼티 감시자(property observer)를 사용하여 속성 값이 변경될 때 추가 작업을 수행할 수도 있습니다.
저장 속성(Stored Properties)
가장 기본적인 형태의 속성으로, 클래스 또는 구조체 내에 변수 또는 상수로 선언됩니다.
struct Rectangle {
var width: Double
var height: Double
}
위의 예제에서 width
와 height
속성은 값을 저장하기 위한 저장 속성입니다.
연산 속성(Computed Properties)
연산 속성은 특정 연산을 통해 값을 동적으로 계산하는 속성입니다. 프로퍼티에 접근할 때마다 해당 연산이 수행됩니다.
struct Circle {
var radius: Double
var diameter: Double {
get {
return radius * 2
}
set(newDiameter) {
radius = newDiameter / 2
}
}
}
위의 예제에서 diameter
는 읽기 전용 속성으로서, radius
를 기반으로 동적으로 값을 계산합니다.
프로퍼티 감시자(Property Observers)
프로퍼티 감시자를 사용하여 속성의 값이 변경될 때 추가 로직을 수행할 수 있습니다. willSet
과 didSet
을 사용하여 속성이 변경되기 직전과 직후에 원하는 작업을 수행할 수 있습니다.
class StepCounter {
var totalSteps: Int = 0 {
willSet(newTotalSteps) {
print("총 걸음 수가 \(newTotalSteps)로 변경될 예정입니다.")
}
didSet {
if totalSteps > oldValue {
print("총 걸음 수가 \(totalSteps - oldValue)만큼 증가했습니다.")
}
}
}
}
위의 예제에서 totalSteps
속성의 값이 변경될 때마다 메시지를 출력하는 예시를 볼 수 있습니다.
Swift의 속성을 통해 재사용 가능한 코드를 작성하는 데 유용하며, 속성 감시자를 사용하여 데이터 변화에 따른 작업을 보다 효과적으로 수행할 수 있습니다.
더 많은 정보는 Swift 공식 문서에서 확인할 수 있습니다.