Genel for Protokolü
Üç değerli yineleyici protokolünü anlayın: yineleyici işlevi, durum ve denetim değişkeni.
Genel for Protokolü, CoddyKit'te ücretsiz bir Lua 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, 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.
Genel for Nasıl Çalışır?
for ifadesi her yinelemede bir yineleyici işlevi çağırır. Bu işleve bir durum ve bir denetim değişkeni aktarır; işlev nil döndürdüğünde durur.
Üç Değer Döndürme
for var in iter, state, init do — Lua bunu şöyle açar: yineleyici işlev iter, değişmez durum state ve başlangıç denetim değişkeni init.
ipairs Protokolü
ipairs(t), durumsuz bir yineleyici işlevi, durumu oluşturan tabloyu ve başlangıç denetim değişkeni olarak 0'ı döndürür. Her çağrı sonraki dizini ve değeri döndürür.
for i, v in ipairs({10, 20, 30}) do
print(i, v)
endÖzel Üç Değerli Yineleyici
Üç değerin tamamını açıkça sağlayarak özel bir durumsuz yineleyici uygulayın.
local function iter(t, i)
i = i + 1
local v = t[i]
if v then return i, v end
end
for i, v in iter, {"a","b","c"}, 0 do
print(i, v)
endKapanımla Basitleştirme
Kapanım tabanlı bir yineleyicinin yalnızca yineleyici işlevini döndürmesi yeterlidir (durum veya denetim değişkeni gerekmez; bunlar üstdeğerlerde tutulur).
local function values(t)
local i = 0
return function()
i = i + 1
return t[i]
end
end
for v in values({1,2,3}) do print(v) endnil Döngüyü Sonlandırır
Genel for döngüsü, yineleyici işlevi ilk dönüş değeri olarak nil döndürür döndürmez çıkar. Bu, sonlandırma sözleşmesidir.
Birden Çok Dönüş Değeri
Yineleyici birden çok değer döndürebilir; her değer bir döngü değişkenine karşılık gelir: for k, v in pairs(t).
for k, v in pairs({x=1, y=2}) do
print(k, v)
endDurum Parametresinin Kullanımı
Durum parametresi her yineleyici çağrısına değiştirilmeden aktarılır. Durumsuz yineleyicilerde gereken tüm bağlamı (örneğin tablonun kendisini) taşır.
Yineleyici Olarak Coroutine.wrap
coroutine.wrap(fn), her çağrıda coroutine'i sürdüren bir işlev döndürür; üretilen değerler dönüş değerlerine dönüşür. Bu nedenle genel for yineleyicisi olarak mükemmeldir.
local function countdown(n)
return coroutine.wrap(function()
for i = n, 1, -1 do coroutine.yield(i) end
end)
end
for v in countdown(5) do print(v) endYineleyici Bileşimi
Yineleyiciler birleştirilebilir: süzme veya dönüştürme eklemek için bir yineleyiciyi başka bir yineleyicinin içine sarabilirsiniz.
local function mapped(iter, fn)
return function()
local v = iter()
if v ~= nil then return fn(v) end
end
endSonsuz Yineleyiciler
Hiçbir zaman nil döndürmeyen bir yineleyici sonsuz döngü oluşturur. Her zaman bir sonlandırma koşulu veya break sağlayın.
local function naturals()
local n = 0
return function() n = n+1; return n end
end
for v in naturals() do
if v > 5 then break end
print(v)
endGenel for Sorusu
Genel for döngüsü ne zaman durur?
Özet: Genel for Protokolü
Genel for, değişmez durum ve denetim değişkeni ile bir yineleyici işlevi çağırır. nil değerinde durur. Kapanımlar, durumu üstdeğerlerde kodlayarak durum bilgili yineleyicileri basitleştirir.
Sıkça Sorulan Sorular
“Genel for Protokolü” dersi ücretsiz mi?
Evet — “Genel for Protokolü” 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.
“Genel for Protokolü” dersinde ne öğreneceğim?
Üç değerli yineleyici protokolünü anlayın: yineleyici işlevi, durum ve denetim değişkeni. 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 1. dersidir.
“Genel for Protokolü” 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