да структура может иметь ленивое свойство. Рассмотрим следующий пример:
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()
Выход:
in testIt
Stuff created with value 2
done
Stuff created with value 1
17
final
Обратите внимание, что свойство отмеченные lazy
не не инициализирован, пока "done"
гравюр, когда свойство первый доступ.
Посмотрите на него в действии here, а затем попробуйте без ключевого слова lazy
.
OK Отлично, только что я искал. Благодаря! – FTNomad