Ios/Swift

[Swift] Computed Properties 스위프트 계산속성

okoo 2022. 7. 11. 08:13
반응형

안녕하십니까 공부하는 개발자 입니다.

오늘 포스팅은 계산속성입니다.

 

🔔Computed Properties 계산속성 특징

계산속성의 경우에는 메모리를 할당받지 않습니다.

메모리를 할당받지 않고 다른 속성에서 필요한 값을 계산하여 리턴하거나 전달받은 속성을 다른 속성에 저장합니다.

열거형에도 추가할 수 있으며 항상 var을 서야하고 형식 추론이 안되기때문에 항상 자료형을 써주어야한다.

1
2
3
4
5
6
7
8
9
var name: Type{
    get{
        statements
        return expr
    }
    set(name){
        statements
    }
}
cs

기본적인 선언방식이다. 내용을 본다면 자바의 getter, setter와 비슷하지 않나 생각됩니다.

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
class Person {
   var name: String
   var yearOfBirth: Int
 
   init(name: String, year: Int) {
      self.name = name
      self.yearOfBirth = year
   }
    
    var age: Int{
        get{
            let calender = Calendar.current
            let now = Date()
            let year = calender.component(.year, from: now)
            return year - yearOfBirth
        }
        set{
            let calender = Calendar.current
            let now = Date()
            let year = calender.component(.year, from: now)
            yearOfBirth = year - newValue
        }
    }
}
 
let p = Person(name: "John Doe", year: 2002)
p.age
cs

 

이런식으로 사용을 할 수 있지만 자바에서는 DTO나 VO에서 선언을 따로 해주는 부분이 있지만

swift에서는 실제로 어떤식으로 사용하는지 아직 잘 모르겠다.

 

또한 Computed Properties는 get만 사용이 가능하지만 set만 사용할 수는 없다.

반응형