[Swift] lazy keyword
概要
SWIFTは、iOSを学ぶたびに、比較的疎いキーワードが3つあります. lazy weak self @escaping.. など 程度は私にとって非常によく知られていない.
だからこの3つの中で今日はlazyキーワードを知るために文章を書きます.
iOS
iOSは、オペレーティングシステムでアプリケーションを実行するときに、メモリの使用量が大きい場合はアプリケーションを閉じます.
したがって,アプリケーション開発者はメモリの使用を制御しながらコードを記述する必要がある.
実際、iphoneが常に少ないRAMを発売していても、アプリケーションを駆動する場合、いつも快適です.
プロセッサだけでなく、オペレーティングシステムの調整もあるようです.
いずれにしても、iOS開発者は空間の複雑さの要因を最適化する必要があると考えています.
Lazy変数
公式文書の定義は次のとおりです.
Lazy変数は、最初に使用するまで初期値を計算しない属性です.ユーザーは、宣言子にlazyを追加することで、lazyストレージ変数を表すことができます.
ユーザーは、letではなくvarとしてlazy変数を常に宣言する必要があります.初期値が計算されていないため、初期化完了時間を測定できません.したがって,定数ではなく変数として宣言する必要がある.
一例としてSNSの代表的なINSTAGRAM Story
最初から持ってくると、見ないかもしれませんが、メモリだけを占めて見るのではないでしょうか.
ユーザーが表示をクリックしたときにのみインポートする必要があります.
コードで例を挙げる.
lazyプロパティに関連するモジュールは、プログラムの使用(読み取り)時にのみ実行されます.
したがって、うまく使えないと、不要な割当てや実行を防止することができる.
また、モジュール内でselfを使用して参照すると、メモリ漏洩が発生する重要な要因であり、lazy propertyのモジュール内で循環参照は発生しないため、selfキーワードを使用できます.
SWIFTは、iOSを学ぶたびに、比較的疎いキーワードが3つあります.
だからこの3つの中で今日はlazyキーワードを知るために文章を書きます.
iOS
iOSは、オペレーティングシステムでアプリケーションを実行するときに、メモリの使用量が大きい場合はアプリケーションを閉じます.
したがって,アプリケーション開発者はメモリの使用を制御しながらコードを記述する必要がある.
実際、iphoneが常に少ないRAMを発売していても、アプリケーションを駆動する場合、いつも快適です.
プロセッサだけでなく、オペレーティングシステムの調整もあるようです.
いずれにしても、iOS開発者は空間の複雑さの要因を最適化する必要があると考えています.
Lazy変数
公式文書の定義は次のとおりです.
Lazy変数は、最初に使用するまで初期値を計算しない属性です.ユーザーは、宣言子にlazyを追加することで、lazyストレージ変数を表すことができます.
ユーザーは、letではなくvarとしてlazy変数を常に宣言する必要があります.初期値が計算されていないため、初期化完了時間を測定できません.したがって,定数ではなく変数として宣言する必要がある.
一例としてSNSの代表的なINSTAGRAM Story
最初から持ってくると、見ないかもしれませんが、メモリだけを占めて見るのではないでしょうか.
ユーザーが表示をクリックしたときにのみインポートする必要があります.
コードで例を挙げる.
import UIKit
struct InterviewCandidate {
var isiOS:Bool?
lazy var iOSResumeDescription: String = {
return "I am an iOS developer"
}()
lazy var androidResumeDescription: String = {
return "I am an android developer"
}()
}
var person1 = InterviewCandidate()
person1.isiOS = true
if person1.isiOS! {
print(person1.iOSResumeDescription)
} else {
print(person1.androidResumeDescription)
}
nilと呼ばない要素が処理されます.lazyプロパティに関連するモジュールは、プログラムの使用(読み取り)時にのみ実行されます.
したがって、うまく使えないと、不要な割当てや実行を防止することができる.
また、モジュール内でselfを使用して参照すると、メモリ漏洩が発生する重要な要因であり、lazy propertyのモジュール内で循環参照は発生しないため、selfキーワードを使用できます.
Reference
この問題について([Swift] lazy keyword), 我々は、より多くの情報をここで見つけました https://velog.io/@hzw94/Swift-lazy-keywordテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol