Durumsuz Yineleyiciler
ipairs gibi durumsuz yineleyiciler yazın ve özel çeşitlerini uygulayın.
Durumsuz Yineleyiciler, CoddyKit'te ücretsiz bir Lua Academy dersidir. Bu, 4 dersinin 2. 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, Lua Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Lua Academy kursu toplamda 4 dersten oluşur.
Durumsuz Yineleyici Nedir?
Durumsuz yineleyici dahili durum taşımaz. Tüm bilgiler her çağrıda bağımsız değişken olarak aktarılır: değişmez durum ve geçerli denetim değişkeni.
ipairs: Klasik Örnek
ipairs durumsuzdur; tabloyu durum, geçerli dizini de denetim değişkeni olarak kullanır.
local function myIpairs(t, i)
i = i + 1
local v = t[i]
if v ~= nil then return i, v end
end
-- Use: for i,v in myIpairs, t, 0 dosquares Yineleyicisi
Ardışık kareleri döndüren durumsuz bir yineleyicidir. Durum sınırı, denetim değişkeni ise geçerli sayıyı taşır.
local function squaresIter(max, n)
n = n + 1
if n <= max then return n, n*n end
end
for n, sq in squaresIter, 5, 0 do
print(n, sq)
endKapanım Gerekmez
Durumsuz yineleyiciler kapanım ayırma işlemini önler. Tüm durum bağımsız değişken olarak aktarıldığından her yineleme için öbek ayırma yapılmaz.
pairs Tarzı Yineleyici Uygulama
Yineleyici işlevi olarak next kullanan durumsuz bir anahtar-değer yineleyicisi; pairs tam olarak böyle çalışır.
for k, v in next, {a=1, b=2} do
print(k, v)
endnext İşlevi
next(t, k), k anahtarından sonraki anahtar-değer çiftini döndürür. Başlangıçtan başlamak için nil aktarın veya bağımsız değişkeni atlayın.
local t = {x=10, y=20}
local k, v = next(t, nil)
print(k, v)
k, v = next(t, k)
print(k, v)Özel Aralık Yineleyicisi
Adım kullanan durumsuz bir aralık yineleyicisidir. Durum bir yapılandırma tablosunu, denetim ise geçerli değeri taşır.
local function rangeIter(state, n)
n = n + state.step
if n <= state.limit then return n end
end
for v in rangeIter, {limit=10, step=2}, 0 do
print(v)
endPerformans Avantajı
Durumsuz yineleyiciler yoğun döngüler için idealdir. Her çağrıda kapanım oluşturulmadığından basit dolaşmalarda durum bilgili kapanım yineleyicilerinden daha hızlıdırlar.
Sınırlamalar
Yineleme karmaşık bir durum (birden çok sayaç, kuyruk veya dinamik veri) gerektirdiğinde durumsuz yineleyiciler kullanışsızlaşır. Bunun yerine durum bilgili kapanım yineleyicileri veya coroutine'leri kullanın.
table.move ile Birleştirme
Durumsuz bir dilim yineleyicisi, bir tablo dilimindeki öğeleri döndürür. Değişmez durum diziyi ve bitiş dizinini, denetim ise geçerli dizini taşır.
Standart Kitaplıktaki Durumsuz Yineleyiciler
ipairs, pairs (next aracılığıyla) ve string.gmatch, dahili olarak durumsuz veya neredeyse durumsuz tasarımlar kullanır.
Durumsuz Yineleyici Sorusu
Bir yineleyiciyi durumsuz yapan nedir?
Özet: Durumsuz Yineleyiciler
Durumsuz yineleyiciler tüm bağlamı bağımsız değişken olarak alır, kapanım ayırma işlemi gerektirmez ve yüksek performans sunar. Dizi dizinleme gibi basit ardışık dolaşmalar için idealdirler.
Sıkça Sorulan Sorular
“Durumsuz Yineleyiciler” dersi ücretsiz mi?
Evet — “Durumsuz Yineleyiciler” 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 Lua Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Lua Academy kursu toplamda 4 dersten oluşur.
“Durumsuz Yineleyiciler” dersinde ne öğreneceğim?
ipairs gibi durumsuz yineleyiciler yazın ve özel çeşitlerini uygulayın. Lua 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.
Lua Academy öğrenmeye başlamak için deneyim gerekli mi?
Önceden deneyim gerekmez. CoddyKit'te Lua 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 2. dersidir.
“Durumsuz Yineleyiciler” 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 Lua Academy dersinde kod yazıp çalıştırabilir miyim?
Evet. Her Lua 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
- Genel for Protokolü
- Durumsuz Yineleyiciler
- Kapanışlarla Durumlu Yineleyiciler
- Coroutine Tabanlı Üreteçler