티스토리 뷰
연산 프로퍼티
직접 값을 저장하지 않고 다른 저장 프로퍼티를 가지고 작업하는 것
class Phone {
var iPhone: String = "iPhone Xr"
// get set에서 쓸 수 있는 저장프로퍼티가 꼭 존재해야함
var myPhone: String { // 타입 추론 불가능해서 타입 꼭 적어줘야 함
get {
return iPhone + "쓴 지 4년째"
// iPhone이라는 저장프로퍼티의 값을 (연산해서) return
// get 속에 내용이 한 줄일때만 return 생략가능함
}
set {
iPhone = newValue + "버티기"
// iPhone이라는 저장프로퍼티에 새로운 값을 저장하는 역할
}
// set(iPhone) {
// self.iPhone = iPhone + " 버티기"
// 이름 같은 경우 self 써주기
// }
// set(csm) {
// iPhone = csm + " 버티기"
// }
// set의 파라미터는 하나만 존재. 파라미터 이름 지어서 해줘도 됨
// 이름 짓기 싫으면 newValue로 접근
}
}
let phone: Phone = Phone()
print(phone.myPhone) //iPhone Xr 쓴 지 4년째
phone.myPhone = "iPhone 15 mini"
print(phone.iPhone) //iPhone 15 mini 버티기
get만 쓸 수도 있음
class Phone {
var iPhone: String = "iPhone Xr"
var myPhone: String {
get {
iPhone + " 쓴 지 4년째"
// 이런경우 return 생략 가능
}
}
}
// ----------------------------------------------
// get 만 쓸 경우에 get을 생략하고 이렇게 간단하게 쓸 수 있음
class Phone {
var iPhone: String = "iPhone Xr"
var myPhone: String {
iPhone + " 쓴 지 4년째"
}
}
set만 쓸 수는 없음
댓글