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 stili tablolarla çalışırken, genellikle içinde saklanan her bir anahtar-değer çiftine erişmeniz gerekir. pairs() işlevi, anahtarların türü ne olursa olsun bir tablodaki tüm girdiler arasında döngü kurmanıza izin vererek bunu mümkün kılar.Bir for döngüsünde pairs() kullanma sözdizimi şu şekilde görünür:
for key, value in pairs(myTable) do
    -- burada key ve value kullan
end
Döngünün her yinelemesi sırasında pairs(), hem key hem de buna karşılık gelen değeri sağlar. Bu, her iki bilgi parçasına da aynı anda erişebileceğiniz ve bunlar üzerinde çalışabileceğiniz anlamına gelir.Bir oyuncunun envanteri ile 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() işlevi, metinler (strings), sayılar veya hatta diğer tablolar dahil olmak üzere her türlü anahtar türüyle çalışır.Metinlerle (Strings) ÇalışmakLua'da, iki nokta (..) olan birleştirme (concatenation) operatörünü kullanarak dizgileri (strings) birbirine bağlayabilirsiniz. Örneğin, "Hello" .. " " .. "World" ifadesi "Hello World" sonucunu verir.Metni birden fazla satıra biçimlendirmeniz gerekiyorsa, yeni satır kaçış karakteri olan "\n" kullanabilirsiniz. Lua bir string içinde "\n" ile karşılaştığında, bunu bir sonraki satıra geçme komutu olarak ele alır.Örneğin, print("Line 1\nLine 2") şunları çıktı olarak verir:
Line 1
Line 2
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 işlevi yazın.

inventory tablosunda gezinmek ve her satırın item: quantity biçiminde bir öğe adını ve ardından miktarını gösterdiği bir dize oluşturmak için pairs() 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 karakterini "\n" kullanın. Örneğin, "apple: 5\nbanana: 3" iki ayrı satır olarak görüntülenecektir. İlk öğeden önce başa bir "\n" eklememeye dikkat edin — bunu yalnızca öğeler arasına ekleyin.

Parametreler:

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

Döndürür: Her bir öğe ve miktarın "\n" ile ayrılmış olarak ayrı bir satırda yer aldığı 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, stringleri '..' 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 eklememeye 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