연산 프로퍼티란?🤷🏻♀️
저장 프로퍼티와 달리 직접 저장공간을 갖지 않고, 다른 저장 프로퍼티의 값을 읽어 연산을 실행하거나, 프로퍼티로 전달받은 값을 다른 프로퍼티에 저장한다.
즉, 다른 저장 프로퍼티가 꼭 존재해야한다.
직접 어떤 값을 저장하는 것이 아니므로, 선언 시 반드시! 자료형을 명시해야한다.
class Cloth {
// 반드시 다른 저장 프로퍼티가 먼저 존재하고 이것을 사용해야함.
var clothName: String = "pretty shirt"
// 연산 프로퍼티
var name: String {
get{
return clothName
}
set(clothName) {
self.clothName = clothName + "은(는) 옷장에 있습니다."
}
}
}
연산 프로퍼티 사용4️⃣
저장 프로퍼티 사용할때처럼 사용하면 된다.
let shirt: Cloth = .init()
// get 접근
print(shirt.name) // pretty shirt
// set 접근
shirt.name = "long shirt"
print(shirt.clothName) // long shirt은(는) 옷장에 있습니다.
set😊
set의 파라미터는 하나만 존재하고, 생략이 가능하다. 생략하면 파라미터에 newValue 로 접근이 가능하다.
연산 프로퍼티에서 set은 생략할 수 있다.
하지만 get은 생략할 수 없다!!
get😊
연산 프로퍼티 사용시 set없이 get만 선언해도 된다.
class Cloth {
// 반드시 다른 저장 프로퍼티가 먼저 존재하고 이것을 사용해야함.
var clothName: String = "pretty shirt"
// 연산 프로퍼티
var name: String {
get{
return clothName
}
}
}
이렇게 사용하고 축약하면 get구문을 없애서 사용할 수 있다.
class Cloth {
// 반드시 다른 저장 프로퍼티가 먼저 존재하고 이것을 사용해야함.
var clothName: String = "pretty shirt"
// 연산 프로퍼티
var name: String {
return clothName
}
}