Menu
Coddy logo textTech

pairs() ile Yineleme

Coddy'nin Lua Journey'sinin Logic & Flow bölümünün bir parçası — ders 1 / 54.

Lua'da sözlük tarzı tablolarla çalışırken, genellikle içinde saklanan her anahtar-değer çiftine erişmeniz gerekir. pairs() fonksiyonu, anahtarların hangi türde olduğuna bakılmaksızın bir tablodaki tüm girdiler arasında döngü kurmanıza olanak tanıyarak bunu mümkün kılar.

Bir for döngüsünde pairs() kullanmanın sözdizimi şöyledir:

for key, value in pairs(myTable) do
    -- anahtar ve değeri burada kullanın
end

Döngünün her yinelemesi sırasında, pairs() hem anahtarı hem de ona karşılık gelen değeri sağlar. Bu, her iki bilgi parçasına da aynı anda erişebileceğiniz ve bunlarla çalışabileceğiniz anlamına gelir.

İşte bir oyuncunun envanterini içeren pratik bir örnek:

local inventory = {
    sword = 1,
    potion = 5,
    gold = 150
}

for item, quantity in pairs(inventory) do
    print(item .. ": " .. quantity)
end

Bu kod, her bir öğe adını ve miktarını yazdıracaktır. pairs() fonksiyonu; dizeler, sayılar ve hatta diğer tablolar dahil olmak üzere her türlü anahtar türüyle çalışır.

challenge icon

Görev

Kolay

Bir inventory tablosu alan ve tüm öğeleri ve miktarlarını listeleyen biçimlendirilmiş bir dize döndüren bir printInventory fonksiyonu yazın.

Envanter tablosu boyunca yineleme yapmak için pairs() kullanın ve her satırın item: quantity formatında bir öğe adını ve ardından miktarını gösterdiği bir dize oluşturun. Her öğe ayrı bir satırda olmalıdır.

Her öğeyi kendi satırına yerleştirmek için girişler arasında yeni satır karakteri "\n" kullanın. Örneğin, "apple: 5\nbanana: 3" iki ayrı satır olarak görüntülenecektir. İlk öğeden önce bir "\n" eklememeye dikkat edin — bunu yalnızca öğeler arasına ekleyin.

Parametreler:

  • inventory (tablo): Anahtarların öğe adları (dizeler) ve değerlerin miktarlar (sayılar) olduğu sözlük tarzı bir tablo

Döndürür: Her öğe ve miktarın "\n" ile ayrılmış şekilde ayrı bir satırda olduğu bir dize. {apple=5, banana=3} için örnek çıktı:
apple: 5
banana: 3

Kopya kağıdı

pairs() fonksiyonu, sözlük tarzındaki bir tablodaki tüm anahtar-değer çiftleri arasında döngü kurmanıza olanak tanır:

for key, value in pairs(myTable) do
    -- use key and value here
end

Her yineleme sırasında, pairs() hem anahtarı hem de ona karşılık gelen değeri sağlayarak her iki bilgi parçasına da aynı anda erişmenize imkan tanır.

Bir envanter tablosu ile örnek:

local inventory = {
    sword = 1,
    potion = 5,
    gold = 150
}

for item, quantity in pairs(inventory) do
    print(item .. ": " .. quantity)
end

pairs() fonksiyonu; dizeler, sayılar ve hatta diğer tablolar dahil olmak üzere her türlü anahtar türüyle çalışır.

Kendin dene

function printInventory(inventory)
    -- 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