Swift ile biraz oynamaya başladığımda, ben sadece okumaya hazır ve tembel bir başlangıç özelliği yazmayı denedim. Kodun satırını, sadece izin verilmediğini öğrenmek için yazdım.Tempoyla hızlı okuma özelliği
// no valid Swift code.
lazy let foo : Int = { return 42 }()
Tembel özelliklerini var
olarak bildirmeniz gerekir. başlangıç değeri alınamaz çünkü,
“Her zaman (var anahtar sözcüğüyle) bir değişken olarak tembel bir mal beyanında gerekir: hızlı kitap açıkça tembel ile izin belirten iyi bir neden için mümkün değildir örnek başlatma tamamlanana kadar. Sabit özellikler her zaman önce başlatma tamamlar bir değere sahip olmalıdır ve bu nedenle tembel olarak ilan edilemez.”
Ben Swift bir salt okunur tembel özelliği istiyorum varsayalım. Bunu arşivlemenin en iyi yolu nedir?
Özel ayarlayıcı benim için yeterli. Bu modeli sıklıkla C# olarak kullanırım. – MBulli
Bence bu, "özel (set) lazy var foo = 42'" ye eşdeğer. Ayarlayıcıyı özel olarak işaretlerseniz, alıcıyı yalnızca ayarlayıcıyı ihmal etmek amacıyla bildirmenin bir anlamı yoktur. –
Bu bir alıcı değildi, tembel bir örnekleme kapatmasıdır, ancak herhangi bir mantık içermediği için gerekli değildir. Bu yüzden özel (set) tembel var foo = 42' sadece aynı şekilde çalışacaktır. – Danchoys