클래스, 구조체, 열거형의 내부에 직접 작성합니다. 메소드 내에서도 변수나 상수를 사용하여 값을 저장할 수 있지만, 이것은 프로퍼티가 아닌 "지역 변수" 입니다.
프로퍼티에 값이 비어있으면 인스턴스를 생성할 때 nil값으로 초기화를 합니다.
그러므로 프로퍼티를 선언할 때 초기값을 할당할 수 있는 방법을 알아야 합니다.
1. 초기화 구문을 작성하고, 그 안에서 초기값을 할당
class Dog {
var name: String
init() {
self.name = ""
}
}
class Dog {
var name: String?
}
class Dog {
var name: String = ""
}
연산 프로퍼티(Computed Properties)는 다른 프로퍼티의 값을 연산 처리하여 간접적으로 값을 제공하는데, 이들은 직접 메모리 공간을 차지하지 않습니다.
연산이 필요한 경우 혹은 값을 동적을 계산해야 할 때 사용된다.
get 블록을 사용하여 값을 가져오고, 필요하다면 set 블록을 사용하여 값을 설정할 수 있습니다.
struct Circle {
var radius: Double // 저장 프로퍼티
var area: Double {
get {
return Double.pi * radius * radius // 계산 프로퍼티 (읽기 전용)
}
set {
radius = sqrt(newValue / Double.pi) // 계산 프로퍼티 (쓰기 가능)
}
}
}