연산 프로퍼티
- 특징
- 저장 공간을 가지지 않음
- 직접 값을 가지지는 않지만, 저장 프로퍼티의 값을 읽어서 연산 실행
- 항상 var로 선언해야 함
- 선언할 때 반드시 자료형을 명시해야 함
var westernAge: Int {
get {
// 값을 연산하여 리턴할 때
return koreanAge - 1
}
set (inputValue) {
// 값을 저장(연산)할 때
var koreanAge = inputValue + 1
}
}
- set의 매개변수 이름은 생략가능
- 명시적으로 newValue 로 접근해서 사용할 수 있음
var westernAge: Int {
get {
return koreanAge - 1
}
set {
var koreanAge = newValue + 1
}
}
- get-only
- 읽기 전용 연산 프로퍼티
- 이 경우에는 get 블록을 생략할 수 있다
- 이 프로퍼티에 set을 하려고 하면 에러가 남
var selfIntroduction: String {
get {
return "저는 \(self.class)반 \(name)입니다"
}
}
var selfIntroduction: String {
return "저는 \(self.class)반 \(name)입니다"
}
- set-only ??
불
가
능
연산 프로퍼티에는 getter가 필요하다
- 예시
struct Student {
// 연산 프로퍼티
var westernAge: Int {
get {
return koreanAge - 1
}
set {
koreanAge = newValue + 1
}
}
}
// 인스턴스 생성
var Jenny: Student = Student()
Jenny.koreanAge = 10
print("한국나이: \(Jenny.koreanAge)살 미국나이: \(Jenny.westernAge)살")
// 한국나이: 10살 미국나이: 9살
'iOS > Swift' 카테고리의 다른 글
[Swift] 프로퍼티 감시자 Property Observer (0) | 2023.11.21 |
---|---|
[Swift] ARC/strong/weak/reference cycles(참조 순환) (1) | 2023.11.20 |
[Swift] 클래스/구조체 언제 사용할까? (0) | 2023.11.20 |
[Swift] 열거형 enum (0) | 2023.11.20 |
[Swift] 구조체 Struct / 클래스 Class (0) | 2023.11.16 |