1
構造体にSwiftの遅延プロパティ[インスタンス化]がありますか?構造体にSwiftの遅延プロパティ[インスタンス化]がありますか?
「はい」または「いいえ」と表示されているドキュメントが見つかりません。すべてが例としてクラスを使用します。
どこでも見つかることができますか?
おかげ
スタン
構造体にSwiftの遅延プロパティ[インスタンス化]がありますか?構造体にSwiftの遅延プロパティ[インスタンス化]がありますか?
「はい」または「いいえ」と表示されているドキュメントが見つかりません。すべてが例としてクラスを使用します。
どこでも見つかることができますか?
おかげ
スタン
はい構造体は怠惰な性質を持つことができます。この例を考えてみましょう:
class Stuff {
var stuff: Int
init(value: Int) {
print("Stuff created with value \(value)")
stuff = value
}
}
struct HasLazy {
lazy var object = Stuff(value: 1)
var object2 = Stuff(value: 2)
}
func testIt() {
print("in testIt")
var haslazy = HasLazy()
print("done")
haslazy.object.stuff = 17
print("\(haslazy.object.stuff)")
print("final")
}
testIt()
出力:プロパティは、プロパティに最初にアクセスしたときに"done"
プリント後まで初期化されませんlazy
をマークしていること
in testIt Stuff created with value 2 done Stuff created with value 1 17 final
注意してください。
hereのアクションを参照してから、lazy
というキーワードを付けずに試してみてください。
OK私が探していたものだけで完璧です。ありがとう! – FTNomad