정의
= Property가 설정되거나 검색되는 시점에서 계산, 파생 된 값
Computed Property 의 구성
- getter 메서드 ( 값을 리턴 )
- setter 메서드 ( 값을 대입 )
예제 1
class Test{
var A : Int // Stored Property
var B : Int // Stored Property
var C : Int{ // Computed Property
get{
return A-1
}
}
func OutPut() {
print("A = \(A), B = \(B)")
}
init(A: Int, B: Int){
self.A = A
self.B = B
}
}
var Number : Test = Test(A: 5, B: 8)
Number.OutPut()
print(Number.C)
실행결과
// A = 5, B = 8
// 4
예제 2 : getter 생략
- setter 가 없으면, get{} 을 생략 할 수 있다.
class Test{
var A : Int
var B : Int
var C : Int{
return A-1
}
func OutPut() {
print("A = \(A), B = \(B)")
}
init(A: Int, B: Int){
self.A = A
self.B = B
}
}
var Number : Test = Test(A: 5, B: 8)
Number.OutPut()
print(Number.C)
실행결과
// A = 5, B = 8
// 4
예제 3 : setter 입력
class Test{
var A : Int
var B : Int
var C : Int{
get{
return A-1
}
set(CA){
A = CA + 1
}
}
func OutPut() {
print("A = \(A), B = \(B)")
}
init(A: Int, B: Int){
self.A = A
self.B = B
}
}
var Number : Test = Test(A: 5, B: 8)
Number.OutPut()
print(Number.C)
print(Number.A)
Number.C = 15
print(Number.A)
실행결과
// A = 5, B = 8
// 4
// 5
// 16
예제 4 : newValue
- setter의 매개변수명이 newValue인 경우 set( ){ } 의 ( ) 부분을 생략가능.
class Test{
var A : Int
var B : Int
var C : Int{
get{ return A-1 }
set{ A = newValue + 1 }
}
func OutPut() {
print("A = \(A), B = \(B)")
}
init(A: Int, B: Int){
self.A = A
self.B = B
}
}
var Number : Test = Test(A: 5, B: 8)
Number.OutPut()
print(Number.C)
print(Number.A)
Number.C = 15
print(Number.A)
실행결과
// A = 5, B = 8
// 4
// 5
// 16
강의 출처 : https://www.youtube.com/channel/UCM8wseo6DkA-D7yGlCrcrwA
'2022_iOS 앱 개발자 워크숍 > 1, Swift 문법 복습' 카테고리의 다른 글
Swift : Failable initializer (0) | 2022.01.06 |
---|---|
Swift : 생성자 중첩 (0) | 2022.01.06 |
Swift : Self (0) | 2022.01.06 |
Swift : 클래스에서 메소드 추가 (0) | 2022.01.06 |
Swift : Property [ 프로퍼티 ] (0) | 2022.01.06 |
댓글