ipairs() ile Yineleme
Coddy'nin Lua Journey'sinin Logic & Flow bölümünün bir parçası — ders 2 / 54.
pairs() herhangi bir tablo yapısıyla çalışırken, Lua, liste tarzı tablolar için özel olarak tasarlanmış ipairs() adında uzmanlaşmış bir fonksiyon sunar. Bu fonksiyon, tablolarda 1. indeksten başlayarak ve bir nil değeriyle karşılaşana kadar devam ederek sıralı bir şekilde döngü oluşturur.
ipairs() sözdizimi pairs() ile benzerdir:
for index, value in ipairs(myList) do
-- burada index ve value değerlerini kullanın
endİşte görev öğelerinin listesini içeren bir örnek:
local questItems = {"Map", "Compass", "Torch", "Rope"}
for i, item in ipairs(questItems) do
print(i .. ". " .. item)
endÇıktı:
1. Map
2. Compass
3. Torch
4. Ropepairs() fonksiyonundan temel farkı, ipairs() fonksiyonunun bir nil değeri bulduğunda, ondan sonra daha fazla öğe olsa bile hemen durmasıdır.
Görev
KolayBir tasks tablosu alan ve tüm görevleri konum numaralarıyla birlikte listeleyen formatlanmış bir dize döndüren bir listTasks fonksiyonu yazın.
Görevleri sıralı bir şekilde yinelemek için ipairs() kullanın ve her satırın number. task formatında görev numarasını ve ardından görev adını gösterdiği bir dize oluşturun. Her görev ayrı bir satırda olmalıdır.
Parametreler:
tasks(table): Görev adlarını dize olarak içeren liste stilinde bir tablo
Döndürdüğü: Her görevin ayrı bir satırda numaralandırıldığı bir dize. Format:
1. task1
2. task2
3. task3Kopya kağıdı
ipairs(), liste tarzı tabloları 1. indeksten başlayarak ve ilk nil değerinde durarak sıralı bir şekilde yineler:
for index, value in ipairs(myList) do
-- burada index ve value kullanın
endÖrnek:
local questItems = {"Map", "Compass", "Torch", "Rope"}
for i, item in ipairs(questItems) do
print(i .. ". " .. item)
end
-- Çıktı:
-- 1. Map
-- 2. Compass
-- 3. Torch
-- 4. RopeTemel fark: pairs() fonksiyonunun aksine, ipairs() bir nil değeriyle karşılaştığında, ondan sonra daha fazla öğe olsa bile hemen durur.
Kendin dene
function listTasks(tasks)
-- Kodunuzu buraya yazın
end
Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.
Logic & Flow bölümündeki tüm dersler
1İleri Düzey Tablo Yineleme
pairs() ile Yinelemeipairs() ile Yinelemepairs() vs. ipairs()Özet - Karakter Sayfası2Daha Fazla Tablo Kütüphanesi Fonksiyonu
table.concat()Tablo Oluşturma ve unpack()table.sort()Fonksiyonlar ile Özel SıralamaÖzet - Yüksek Skor Tablosu