Swift
[Swift] property의 값을 가지고와 다른 property의 값에 넣어주자 : lazy var
insub4067
2022. 7. 17. 23:48
lazy 라는 키워드는 해당 property가 호출될때 실행된다
말인 즉슨
SomeClass의 instance가 생성이 된다면 someString에 값이 들어간다
그 시점에 someStringOfsomeString의 값은 할당 되어 있지 않았다.
하지만 instance.someStringOfsomeString이라고 호출하면 그제서야
값이 할당이 되어 호출이 된다.
말인 즉슨 같은 class 내 다른 property의 값도 가지고와 쓸수 있다는 말이다.
왜 lazy가 아니면 다른 property의 값을 가져다 쓸수 없을까?
그것은 init되는 시점에 다른 property 들의 값이 다 들어가 있지 않을수도 있고
버그를 일으킬 가능성이 많기 때문에 애초에 막아 놓은거 같다.
그리고 또 언제 사용할수 있을까?
SwiftUI를 사용해서 View를 그릴때
body 위에다가 가져다쓸 data들을 property로 선언한다
하지만 다른 property의 값을 가져다 property에 값으로 넣기가 어렵다
그때 쓰면 됨! ㅋ
아마 될껄? 아직 안해봣음 ㅎ
import SwiftUI
class SomeClass {
let someString: String = "Some String"
lazy var someStringOfsomeString: String = "\(someString) of Some String"
}