Swift, Properties, 4, Lazy Stored Properties, Lazy Variable, lazy var

  • Lazy stored property ilk defa kullanılana kadar başlangıç yani initial değeri hesaplanmıyor.
  • Lazy is only valid for members of a struct or class. Lazy sadece Class ve Struct içinde geçerlidir.
  • Lazy cannot be used on a let. Lazy “let” ile kullanılamaz. Sadece “var” ile kullanılabilir. Çünkü sabitler başlatma tamamlanmadan önce değerini almalıdır.
  • Değer saklama bakımından stored property ve computed property’den çok bir farkı yoktur. Fakat hafıza için önemlidir. Mesela computed property’i HomepageViewController.swift dosyasında yazdık, uygulama her çalıştığında derlenir ve hafızaya yüklenir. Lazy ise sadece çağrıldığında hesaplanır, çağrılmaz ise hafızada yer tutmaz.
  • Çok fazla kullanıcısı olan çok fazla işlem yapılan uygulamalar için tercih edilmelidir.
  • Stored property önüne lazy ibaresi eklereyerek bu property’i lazy stored property’e çevirebiliriz.
  • Dış faktörlere bağlı senaryolarda kullanmak tercih edilmelidir.
  • Örnek;
struct Arac
{
var aracSporModelMi : Bool?

lazy var sporAracIcinTercihEdilenJant : String =
{
return "Spor araç için tercih edilen jant: 23inch"
}()

lazy var sporOlmayanAracIcinTercihEdilenJant : String =
{
return "Spor olmayan Araç için tercih edilen jant: 20inch"
}()
}

var oarac : Arac = Arac()
// arac nesnesi spor araç olmasın.oarac.aracSporModelMi = false

if oarac.aracSporModelMi!
{
print(oarac.sporAracIcinTercihEdilenJant)
}
else
{
print(oarac.sporOlmayanAracIcinTercihEdilenJant)
}
// çıktısı: Spor olmayan Araç için tercih edilen jant: 20inch

Referans: developer.apple.com, swift.org
Makalenin yazıldığı zaman Swift versiyonu: 5.3
İyi çalışmalar.