ipairs ile Yineleme
Diziler üzerinde sırayla döngü kurun.
ipairs ile Yineleme, CoddyKit'te ücretsiz bir Lua Academy dersidir. Bu, 4 dersinin 3. 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.
ipairs Neden Kullanılır
Bir dizide indeks kullanarak ilerlemek işe yarar; ancak ipairs daha temiz ve güvenlidir. Bu işlev, her indeksi ve değeri sırayla size verir.
1 indeksinden başlar ve ilk nil değerinde durur; bu nedenle boşluksuz diziler için idealdir.
local fruits = {"apple", "banana", "cherry"}
for i, v in ipairs(fruits) do
print(i, v)
endDöngünün Yapısı
Kullanılan kalıp şöyledir: for index, value in ipairs(t) do ... end.
Her yinelemede index 1 tabanlı konumu, value ise o konumdaki öğeyi belirtir. Elle bir sayaç kullanmanız gerekmez.
local colors = {"red", "green", "blue"}
for i, c in ipairs(colors) do
print("Color", i, "is", c)
endİndeksi Yok Sayma
Yalnızca değerlere ihtiyacınız varsa, kullanılmadığını göstermek için geleneksel olarak indeksi _ adıyla belirtin.
Döngü yine öğeleri 1 tabanlı sırayla ziyaret eder.
local nums = {10, 20, 30}
local total = 0
for _, n in ipairs(nums) do
total = total + n
end
print("sum:", total)1'den Başlar, Boşlukta Durur
ipairs, 1 indeksinden başlar ve sonraki indeks nil olmadığı sürece ilerler.
Bir boşluk varsa orada durur. Bu nedenle ipairs, eksik konumlar içeren tablolar için değil, düzenli diziler içindir.
local t = {"a", "b", nil, "d"}
for i, v in ipairs(t) do
print(i, v)
endDeğerleri Toplama
Sık karşılaşılan bir görev, bir listeyi toplam veya en büyük değer gibi tek bir sayıya indirgemektir.
ipairs bunu okunaklı hâle getirir: her değeri ziyaret edip biriktirirsiniz.
local prices = {3, 7, 2, 9}
local max = prices[1]
for _, p in ipairs(prices) do
if p > max then max = p end
end
print("max:", max)Yeni Bir Liste Oluşturma
Bir diziyi başka bir diziye dönüştürmek için ipairs ile table.insert işlevlerini birlikte kullanın.
Burada her sayıyı ikiyle çarparak yeni bir tabloda tutuyor, sırayı ve 1 tabanlı indeksleri koruyoruz.
local src = {1, 2, 3}
local doubled = {}
for _, n in ipairs(src) do
table.insert(doubled, n * 2)
end
print(doubled[1], doubled[2], doubled[3])ipairs ve pairs
pairs, dize anahtarları da dâhil olmak üzere her anahtarı, sırası garanti edilmeyen bir düzende gezer. ipairs ise yalnızca 1, 2, 3... şeklindeki tamsayı dizisini sırayla gezer.
Sıralı diziler için ipairs kullanın.
local t = {"x", "y"}
t.name = "extra"
for i, v in ipairs(t) do
print(i, v)
endKoşulla Filtreleme
Yalnızca eşleşen öğeleri tutmak için döngünün içinde bir if kullanın.
Aşağıda, üç harften uzun sözcükleri yeni bir dizi içinde topluyoruz.
local words = {"hi", "hello", "yo", "howdy"}
local long = {}
for _, w in ipairs(words) do
if #w > 3 then table.insert(long, w) end
end
print(long[1], long[2])Öğe Bulma
Arama yapmak için ipairs ile döngü kurun ve öğe bulunduğunda durun. Dizin, 1 tabanlı konumu gösterir.
Hedef göründüğünde break kullanarak erkenden dönüyoruz.
local names = {"Ann", "Bob", "Cy"}
local found = 0
for i, n in ipairs(names) do
if n == "Bob" then found = i break end
end
print("Bob at index", found)Gezerken Sayma
Döngünün içinde bir değişkeni artırarak eşleşen öğeleri sayabilirsiniz.
Bu yöntem, dizinlere doğrudan dokunmadan dizinin tamamını taramanızı sağlar.
local marks = {5, 8, 3, 9, 6}
local passes = 0
for _, m in ipairs(marks) do
if m >= 6 then passes = passes + 1 end
end
print("passing:", passes)İç İçe ipairs
Tablolardan oluşan bir tablo için her hücreyi ziyaret etmek üzere iki ipairs döngüsünü iç içe kullanın.
Dış döngü satırları, iç döngü ise sütunları gezer; ikisi de 1 tabanlıdır.
local grid = {{1, 2}, {3, 4}}
for _, row in ipairs(grid) do
for _, cell in ipairs(row) do
print(cell)
end
endKısa Kontrol
ipairs döngüsünün nerede başlayıp nerede bittiğini hatırlayın.
Özet
for i, v in ipairs(t) kalıbını öğrendiniz: Bir diziyi 1 tabanlı sırayla gezer ve ilk boşlukta durur.
Listeleri toplamak, filtrelemek, aramak ve dönüştürmek için kullanın. Sırada uzunluğu # ile ölçmeyi ve öğeleri table.sort ile sıralamayı öğreneceksiniz.
Sıkça Sorulan Sorular
“ipairs ile Yineleme” dersi ücretsiz mi?
Evet — “ipairs ile Yineleme” 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.
“ipairs ile Yineleme” dersinde ne öğreneceğim?
Diziler üzerinde sırayla döngü kurun. 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 3. dersidir.
“ipairs ile Yineleme” 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
- Tablo Olarak Diziler
- Öğe Ekleme ve Kaldırma
- ipairs ile Yineleme
- Uzunluk ve Sıralama