0Pricing
Swift Academy · Ders

lazy Özelliği

Dönüştürme işlemini gerekene kadar erteleyin.

lazy Özelliği, CoddyKit'te ücretsiz bir Swift Academy dersidir. Bu, 4 dersinin 1. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, Swift Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Swift Academy kursu toplamda 4 dersten oluşur.

Varsayılan Olarak Hemen Çalıştırma

Standart koleksiyon yöntemleri hemen çalışır: map, filter ve benzerleri, yalnızca ilk öğeyi okuyacak olsanız bile hemen çalışır ve eksiksiz bir yeni dizi oluşturur.

İşlem Hemen Gerçekleşir

Bu işlem, dönüştürülmüş dizinin tamamını önceden oluşturur:

let nums = [1, 2, 3, 4, 5]
let doubled = nums.map { $0 * 2 }  // whole array built now
print(doubled.first!)  // 2

Gecikmeli Özellik

Her koleksiyon bir .lazy görünümü sunar. Gecikmeli görünüm üzerindeki işlemler ertelenir: siz gerçekten yineleme yapana veya belirli bir öğe isteyene kadar çalışmazlar.

Gecikmeli Görünüm Oluşturma

Zincirin başına yalnızca .lazy ekleyin:

let nums = [1, 2, 3, 4, 5]
let view = nums.lazy.map { $0 * 2 }
// nothing computed yet
print(Array(view))  // [2, 4, 6, 8, 10]

Ertelenmiş Yürütmenin Kanıtı

Yan etkiler, kapanışın yalnızca gerektiğinde çalıştığını gösterir:

let nums = [1, 2, 3]
let lazyMapped = nums.lazy.map { n -> Int in
    print("transforming \(n)")
    return n * 2
}
print("created view")
print(lazyMapped.first!)  // prints "transforming 1" then 2

Gecikmeli İşlem Farklı Tür Döndürür

Gecikmeli zincir bir Dizi değil, hafif bir sarmalayıcıdır:

let nums = [1, 2, 3]
let view = nums.lazy.map { $0 + 1 }
print(type(of: view).self != [Int].self)  // true -- it is a LazyMapSequence

Gecikmeli Görünümü Somutlaştırma

Saklamanız veya döndürmeniz gerektiğinde Array(...) ile yeniden somut bir diziye dönüştürün:

let nums = [1, 2, 3]
let result: [Int] = Array(nums.lazy.map { $0 * 10 })
print(result)  // [10, 20, 30]

Gecikmeli İşlemle Koşula Uyan İlk Öğeyi Bulma

Erken durduğunuzda gecikmeli işlem avantaj sağlar. Eşleşme bulmak için yalnızca yeterli sayıda öğe işlenir:

let nums = [1, 2, 3, 4, 5, 6]
let firstBig = nums.lazy.map { $0 * $0 }.first { $0 > 10 }
print(firstBig!)  // 16  (stops at 4*4)

Aralık Üzerinde Gecikmeli İşlem

Aralıklar da gecikmeli işlemle çalışır; bu, büyük veya neredeyse sonsuz diziler için kullanışlıdır:

let firstThree = (1...1000).lazy.map { $0 * $0 }.prefix(3)
print(Array(firstThree))  // [1, 4, 9]

Görünüm Yeniden Değerlendirildiğinde

Gecikmeli görünüm, her yinelediğinizde yeniden hesaplanır — hiçbir sonucu saklamaz. İki kez yinelerseniz dönüşüm de iki kez çalışır:

var calls = 0
let view = [1, 2].lazy.map { (n: Int) -> Int in calls += 1; return n }
_ = Array(view)
_ = Array(view)
print(calls)  // 4

Gecikmeli İşlemi Ne Zaman Kullanmalı

Uzun bir zinciriniz varsa ancak sonucun yalnızca bir bölümünü tüketiyorsanız .lazy ekleyin — ilk eşleşmeyi, bir prefix'i veya tek bir indirgemeyi almak için. Tamamını tükettiğiniz küçük dizilerde hemen çalışan yaklaşım daha basittir.

let nums = Array(1...100)
let result = nums.lazy.filter { $0 % 7 == 0 }.first
print(result!)  // 7

Hızlı Kontrol

.lazy özelliği map ve filter hakkında neyi değiştirir?

Özet

Gecikmeli işlemin temellerini öğrendiniz:

  • Standart koleksiyon yöntemleri hemen çalışır — dizileri anında oluştururlar
  • .lazy, ertelenmiş bir görünüm (özel bir dizi türü) döndürür
  • İş yalnızca yineleme yaptığınızda veya bir öğe istediğinizde gerçekleşir
  • Array(...) ile somutlaştırın; görünümler her yinelemede yeniden çalışır

Sırada gecikmeli eşleme ve filtreleme zincirleri var.

Sıkça Sorulan Sorular

“lazy Özelliği” dersi ücretsiz mi?

Evet — “lazy Özelliği” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve Swift Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Swift Academy kursu toplamda 4 dersten oluşur.

“lazy Özelliği” dersinde ne öğreneceğim?

Dönüştürme işlemini gerekene kadar erteleyin. Swift Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.

Swift Academy öğrenmeye başlamak için deneyim gerekli mi?

Önceden deneyim gerekmez. CoddyKit'te Swift Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 1. dersidir.

“lazy Özelliği” dersi ne kadar sürer?

Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.

Bu Swift Academy dersinde kod yazıp çalıştırabilir miyim?

Evet. Her Swift Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.

Bu kursun tüm dersleri

  1. lazy Özelliği
  2. Tembel map ve filter
  3. Tembel ve Açgözlü İşlemlerin Dengesi
  4. Özel Tembel Diziler Oluşturma
← Swift Academy Sayfasına Dön