[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を適用して上記の変更を行った後、インスタンスの作成時にパブリッシュされるわけではありません.添付ファイルからアクセスすると、出力の結果が表示されます.Reference
この問題について([Swift] lazy var), 我々は、より多くの情報をここで見つけました https://velog.io/@ffalswo2/Swift-lazy-varテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol