Swift:: 프로퍼티 응용

jahlee·2023년 4월 26일
0

Swift기초

목록 보기
15/26
post-thumbnail

프로퍼티는 클래스, 구조체, 열거형과 연관된 값이다. 타입과 관련된 값을 저장할 수도, 연산할 수도 있다.

프로퍼티의 종류

인스턴스 저장 프로퍼티
타입 저장 프로퍼티
인스턴스 연산 프로퍼티
타입 연산 프로퍼티
지연 저장 프로퍼티

정의와 사용

프로퍼티는 구조체, 클래스, 열거형 내부에 구현할 수 있다. 다만 열거형 내부에는 연산 프로퍼티만 구현할 수 있다. 연산 프로퍼티는 var로만 선언할 수 있다.
연산프로퍼티를 읽기전용으로는 구현할 수 있지만, 쓰기 전용으로는 구현할 수 없다. 읽기전용으로 구현하려면 get 블럭만 작성해주면 됩니다. 읽기전용은 get블럭을 생략할 수 있다. 읽기, 쓰기 모두 가능하게 하려면 get 블럭과 set블럭을 모두 구현해주면 된다.
set 블럭에서 암시적 매개변수 newValue를 사용할 수 있다.

struct Money {
    var currencyRate: Double = 1100
    var dollar: Double = 0
    var won: Double {
        get {
            return dollar * currencyRate
        }
        set {
            dollar = newValue / currencyRate
        }
    }
}
var moneyInMyPocket = Money()
moneyInMyPocket.won = 11000
print(moneyInMyPocket.won)
// 11000.0
moneyInMyPocket.dollar = 10
print(moneyInMyPocket.won)
// 11000.0
지역변수 및 전역변수
저장 프로퍼티와 연산 프로퍼티의 기능은 함수, 메서드, 클로저, 타입 등의 외부에 위치한 지역/전역 변수에도 모두 사용 가능하다.

var a: Int = 100
var b: Int = 200
var sum: Int {
    return a + b
}
print(sum) // 300

0개의 댓글