[Swift] lazy var

MinTa·2022년 1월 6일
0
post-thumbnail
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에서 접근을 할 때에 결과가 출력되는 것을 알 수 있다.

profile
지(치지않고)꾸(준히)열(심히)

0개의 댓글