Tablo Oluşturma ve unpack()
Coddy'nin Lua Journey'sinin Logic & Flow bölümünün bir parçası — ders 6 / 54.
Lua, birden fazla değerle çalışmak için birbirini tamamlayan bir çift teknik sunar: tablo oluşturma ve table.unpack(). Bunlar, esnek argüman işleme gerektiren fonksiyonlarla çalışırken özellikle yararlıdır.
Süslü parantezli tablo oluşturucu sözdizimini kullanarak birden fazla değeri liste stili bir tabloda yakalayabilirsiniz. Bu, tüm değerleri tek bir tablo yapısında toplar.
local args = {10, 20, 30}
print(args[1]) -- Çıktı: 10
print(#args) -- Çıktı: 3table.unpack() fonksiyonu tam tersini yapar; liste stilinde bir tablo alır ve tüm öğelerini ayrı değerler olarak döndürür. Bu, tablo içeriklerini bir fonksiyona ayrı argümanlar olarak aktarmanıza olanak tanır.
local numbers = {5, 10, 15}
print(table.unpack(numbers)) -- Çıktı: 5 10 15Bu teknikler sorunsuz bir şekilde birlikte çalışır. Değerleri bir tabloda toplayabilir, tabloyu işleyebilir ve ardından tekrar tekil değerlere açabilirsiniz.
Görev
KolayÜç adet sayı (a, b ve c) alan ve tablo oluşturma ile table.unpack() kullanarak bunların toplamını döndüren bir forwardArguments fonksiyonu yazın.
{a, b, c} sözdizimini kullanarak üç argümanı içeren bir tablo oluşturun, ardından bunları açın (unpack) ve toplamlarını hesaplayan başka bir fonksiyona aktarın.
Mantık:
- Her üç argümanı da içeren bir tablo oluşturmak için
{a, b, c}kullanın - Üç parametre alan ve bunların toplamını döndüren
sumadında ayrı bir fonksiyon oluşturun - Tablo değerlerini
sumfonksiyonuna aktarmak içintable.unpack()kullanın sumfonksiyonundan gelen sonucu döndürün
Parametreler:
a(sayı): Birinci sayıb(sayı): İkinci sayıc(sayı): Üçüncü sayı
Döndürür: Her üç sayının toplamı (sayı)
Kopya kağıdı
Tablo oluşturucu sözdizimi {a, b, c, ...} liste stilinde bir tablo oluşturur. Eleman sayısını almak için # kullanın.
local args = {10, 20, 30}
print(args[1]) -- Çıktı: 10
print(#args) -- Çıktı: 3table.unpack() liste stilinde bir tablo alır ve tüm elemanlarını ayrı değerler olarak döndürür; bu da tablo içeriğini bir fonksiyona ayrı argümanlar olarak aktarmanıza olanak tanır.
local numbers = {5, 10, 15}
print(table.unpack(numbers)) -- Çıktı: 5 10 15Kendin dene
function forwardArguments(a, b, c)
-- Toplamı hesaplayan ayrı bir fonksiyon oluşturun
-- Her üç argümanı da içeren bir tablo oluşturun
-- Tabloyu açın ve değerleri sum fonksiyonuna geçirin
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