Menu
Coddy logo textTech

pairs() ile Yineleme

Coddy'nin Lua Journey'sinin Mantık ve Akış bölümünün bir parçası. Ders 1 / 54.

Lua'da sözlük tarzı tablolarla çalışırken, genellikle içinde depolanan her anahtar-değer çiftine erişmeniz gerekir. pairs() işlevi, anahtarların türü ne olursa olsun bir tablodaki tüm girdiler üzerinde döngü oluşturmanıza olanak tanıyarak bunu mümkün kılar.Bir for döngüsünde pairs() kullanma sözdizimi şöyledir:
for key, value in pairs(myTable) do
    -- burada key ve value kullan
end
Döngünün her yinelemesinde pairs(), hem key değerini hem de ona karşılık gelen değeri sağlar. Bu, her iki bilgi parçasına aynı anda erişip 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 öğenin adını ve miktarını yazdırır. pairs() işlevi; dizeler, sayılar ve hatta diğer tablolar da dâhil olmak üzere her anahtar türüyle çalışır.Dizelerle ÇalışmaLua'da, birleştirme işleci olan iki noktayı (..) kullanarak dizeleri birleştirebilirsiniz. Örneğin, "Hello" .. " " .. "World" ifadesi "Hello World" sonucunu verir.Metni birden çok satıra biçimlendirmeniz gerekiyorsa, yeni satır kaçış karakteri olan "\n" karakterini kullanabilirsiniz. Lua, bir dizenin içinde "\n" ile karşılaştığında bunu bir sonraki satıra geçme komutu olarak değerlendirir.Örneğin, print("Line 1\nLine 2") şunu verir:
Line 1
Line 2
challenge icon

Görev

Kolay

printInventory adlı, bir inventory tablosu alan ve tüm öğeleri ile miktarlarını listeleyen biçimlendirilmiş bir dize döndüren bir işlev yazın.

Envanter tablosunda yinelemek ve her satırda pairs() biçiminde bir öğe adı ile ardından miktarını gösteren bir dize oluşturmak için item: quantity kullanın. Her öğe ayrı bir satırda olmalıdır.

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

Parametreler:

  • inventory (table): Anahtarları öğe adları (string), değerleri ise miktarlar (number) olan sözlük tarzı bir tablo

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

Kendin dene

function printInventory(inventory)
    -- Çıktıyı biçimlendirmek için dizeleri '..' operatörünü kullanarak birleştirebilirsiniz.
    -- Yeni bir satır eklemek için özel karakter '\n' kullanın.
    -- İlk öğeyi mi yoksa sonraki bir öğeyi mi eklediğinizi takip etmenin bir yoluna ihtiyacınız olabilir
    -- öğeden önce bir yeni satır ekleyip eklemeyeceğinize karar vermek için.
    
    -- Kodu 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.

Mantık ve Akış bölümündeki tüm dersler

Kendi başına pratik yap: Online Lua derleyicisi