본문 바로가기
2022_iOS 앱 개발자 워크숍/1, Swift 문법 복습

Swift : Computed Property

by 황민우 2022. 1. 6.

정의

 = 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

댓글