pairs() ile Yineleme
Coddy'nin Lua Journey'sinin Mantık ve Akış bölümünün bir parçası. Ders 1 / 54.
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
endpairs(), 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)
endpairs() 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 2Görev
KolayprintInventory 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: 5banana: 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
endBu 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
1İleri Düzey Tablo Yineleme
pairs() ile Yinelemeipairs() ile Yinelemepairs() vs. ipairs()Özet - Karakter Sayfası2Daha Fazla Tablo Kütüphanesi Fonksiyonu
table.concat()Tablo Oluşturma ve unpack()table.sort()Fonksiyonlar ile Özel SıralamaÖzet - Yüksek Skor TablosuKendi başına pratik yap: Online Lua derleyicisi