[Swift] lazy var


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 출력됨
この方法では、インスタンスを作成するたびにイメージをロードしてメモリ領域にコピーするため、オーバーヘッドが発生します.したがって、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を適用して上記の変更を行った後、インスタンスの作成時にパブリッシュされるわけではありません.添付ファイルからアクセスすると、出力の結果が表示されます.