항상 var로 선언된다→ 이유: 다른 저장 프로퍼티의 값을 읽어 연산을 실행하거나 전달받은 값을 다른 프로퍼티에 저장하기 때문에선언된 자료형 뒤에 {}를 붙이는 것이 연산 프로퍼티의 사용법이다타입 어노테이션을 통해 자료형을 명시해야 한다반드시 return 구문이 존재해야 한다
import UIKit
class Friend {
var name: String = "" //저장 프로퍼티
var age: Int //저장프로퍼티
var detailInfo : String = ""
var info : String { //info는 get과 set을 가지므로 연산프로퍼티이다
//getter는 데이터를 가지고 올 때 가공을 해서 가지고 올 수 있는 것을 의미한다
get {
return "내 친구 : \(name)"
}
//어떤 변수에 값이 들어왔을 때 연관된 값의 변수의 값을 변경해줄 수 있는 것을 의미한다
set {
detailInfo = "info에서 설정된 값: " + newValue
self.info = name //Error!!!!!!!!!!!연산프로퍼티를 여기서 호출하면 안된다
}
}
//초기화 구문
init(_ name: String, _ age: Int) {
self.name = name //내가 가진 name이 매개변수로 들어온 name이다
self.age = age
}
}
let myFriend = Friend("rayoung", 26) //초기화 구문을 통해서 파라미터에 값을 넣어준다
//getter
myFriend.info //내 친구 : rayoung이 출력된다 -> 즉, getter을 통해서 값을 가지고 온것
//setter
myFriend.info = "호호호" //setter을 통해서 값을 셋팅해준것 -> newValue가 '호호호'가된다
//setter을 통해서 값이 새롭게 바뀐 부분 호출
myFriend.detailInfo //getter을 가지고 오게 된다