티스토리 뷰

연산 프로퍼티

직접 값을 저장하지 않고 다른 저장 프로퍼티를 가지고 작업하는 것

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만 쓸 수는 없음

댓글
최근에 올라온 글
«   2024/09   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
글 보관함