Menu
Coddy logo textTech

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. Rope

pairs() fonksiyonundan temel farkı, ipairs() fonksiyonunun bir nil değeri bulduğunda, ondan sonra daha fazla öğe olsa bile hemen durmasıdır.

challenge icon

Görev

Kolay

Bir 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. task3

Kopya 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. Rope

Temel 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
quiz iconKendini test et

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