Menu
CoddyTech

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 biçimindeki tablolarla çalışırken, tabloda saklanan her anahtar-değer çiftine erişmeniz sık sık gerekir. pairs() işlevi, anahtarların türü ne olursa olsun tablodaki tüm girdiler üzerinde 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
    -- key ve value değişkenlerini burada kullan
end
Döngünün her yinelemesinde pairs() hem anahtarı 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ğin 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 öğenin adını ve miktarını yazdırır. pairs() işlevi dizeler, sayılar ve hatta diğer tablolar da dahil olmak üzere her tür anahtarla çalışır.Görev: bir dize oluşturmaAşağıdaki alıştırma, her girdiyi tek bir metin olarak döndürmeni istiyor; bu yüzden Temel Bilgiler bölümündeki iki metin aracını hatırlayalım. Metinleri, iki nokta işaretinden oluşan birleştirme işleciyle birleştirirsin (..). Örneğin, "Hello" .. " " .. "World" ifadesinin sonucu "Hello World" olur.Metni birden fazla satıra biçimlendirmen gerekiyorsa yeni satır kaçış karakteri "\n" kullanabilirsin. Lua, bir dizenin içinde "\n" ile karşılaştığında bunu sonraki satıra geçme komutu olarak yorumlar.Örneğin, print("Line 1\nLine 2") çıktısı şöyle olacaktır:
Line 1
Line 2
challenge icon

Görev

Kolay

inventory tablosunu alan ve tüm öğeleri miktarlarıyla birlikte listeleyen biçimlendirilmiş bir dize döndüren bir printInventory işlevi yazın.

Envanter tablosunda yineleme yapmak ve her satırda bir öğe adının ardından miktarının item: quantity biçiminde gösterildiğ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ına satır sonu karakteri "\n" ekleyin. Örneğin, "apple: 5\nbanana: 3" iki ayrı satır olarak görüntülenir. İlk öğeden önce başında "\n" olacak şekilde ekleme yapmamaya dikkat edin: bunu yalnızca öğelerin arasına ekleyin.

Parametreler:

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

Döndürür: Her öğenin ve miktarının ayrı bir satırda gösterildiği, satırların "\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 '..' operatörünü kullanarak dizeleri birleştirebilirsiniz.
    -- Yeni bir satır eklemek için '\n' özel karakterini kullanın.
    -- İlk öğeyi mi yoksa sonraki öğelerden birini mi eklediğinizi takip etmenin bir yoluna ihtiyacınız olabilir
    -- böylece öğeden önce yeni bir satır ekleyip eklemeyeceğinize karar verebilirsiniz.
    
    -- 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