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
endDö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)
endBu 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.
Görev
KolayBir 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: 5banana: 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
endHer 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)
endpairs() 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
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
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 Tablosu