본문 바로가기

Swift

Swift 정리 : computed property의 setter

setter가 있으면 get{ }는 생략할 수 없음

매개변수명은 newValue가 기본, 이 경우 생략 가능 newValue가 아니라면 변수명을 써주어야 함

class Man{

  var age : Int = 1  // stored property

  var weight : Double = 3.5  // stored property

  var manAge : Int{ //메서드 같지만 computed property

    get{

        return age-1   

      }

      set(newValue){    //(newValue) 생략 가능

        age = newValue + 1

      }

  }

  func display(){

   print("나이=\(age), 몸무게=\(weight)")

  }

  init(age: Int, weight : Double){

   self.age = age

   self.weight = weight

  }

}

var kim : Man = Man(age:23, weight:95)

kim.display()     //나이=23, 몸무게=95.0

print(kim.manAge)   //22

kim.manAge = 3     //setter호출

print(kim.age)      //4