struct Image {
init() {
print("new image")
}
}
struct BlogPost {
let title: String = "Title"
let content: String = "Content"
let attachment: Image = Image()
}
var post = BlogPost() // 결과 : new image 출력됨
위와 같은 방식은 매번 instance를 생성할 때 마다 image를 불러와서 메모리공간에 복사해야하기 때문에 overhead가 발생하기 때문에 초기화할때가 아닌 해당 속성에 접근할때만 불러오게끔 lazy var 적용
lazy..늦게 초기화시켜줘..
struct BlogPost {
let title: String = "Title"
let content: String = "Content"
lazy var attachment: Image = Image()
}
var post = BlogPost() // 여기서는 출력안됨
post.attachment // 결과 : new image 출력됨
lazy var를 적용하여 위와 같이 변경한 이후에는 instance를 생성할때가 아닌 post.attachment에서 접근을 할 때에 결과가 출력되는 것을 알 수 있다.