Tablo Oluşturma ve unpack()
Coddy'nin Lua Journey'sinin Mantık ve Akış bölümünün bir parçası. Ders 6 / 54.
unpack(). Bunlar, esnek argüman işleme gerektiren işlevlerle çalışırken özellikle kullanışlıdır.Kıvrımlı parantezlerle tablo kurucusu sözdizimini kullanarak birden fazla değeri liste biçimindeki bir tabloda toplayabilirsin. Bu, tüm değerleri tek bir tablo yapısında bir araya getirir.local args = {10, 20, 30}
print(args[1]) -- Çıktı: 10
print(#args) -- Çıktı: 3unpack() işlevi bunun tersini yapar. Liste tarzı bir tabloyu alır ve tüm öğelerini ayrı değerler olarak döndürür. Bu, tablo içeriğini bir işleve ayrı bağımsız değişkenler olarak aktarmanı sağlar.Önemli: Lua'nın daha yeni sürümleri (5.2+) bu işlevi table.unpack() içine taşısa da bu ortam Lua 5.1 çalıştırıyor, bu nedenle global unpack() işlevini kullanmalısın.local numbers = {5, 10, 15}
print(unpack(numbers)) -- Çıktı: 5 10 15Görev
KolayÜç sayı alan ve tablo oluşturma ile unpack() kullanarak bu sayıların toplamını döndüren bir forwardArguments işlevi yazın.
{a, b, c} söz dizimini kullanarak üç bağımsız değişkeni içeren bir tablo oluşturun, ardından bunları açıp toplamlarını hesaplayan başka bir işleve aktarın.
Not: Bu ortamla uyumluluğu sağlamak için lütfen table.unpack() yerine global unpack() işlevini kullanın.
Mantık:
- Üç bağımsız değişkenin tümünü içeren bir tablo oluşturmak için
{a, b, c}kullanın - Üç parametre alan ve bunların toplamını döndüren
sumadlı ayrı bir işlev oluşturun - Tablo değerlerini
sumişlevine aktarmak içinunpack()kullanın sumişlevinin sonucunu döndürün
Parametreler:
a(sayı): İlk sayıb(sayı): İkinci sayıc(sayı): Üçüncü sayı
Döndürür: Üç sayının toplamı (sayı)
Kendin dene
function forwardArguments(a, b, c)
-- Toplamı hesaplayan ayrı bir fonksiyon oluşturun
-- Üç argümanın tümünü içeren bir tablo oluşturun
-- Tabloyu açın ve değerleri toplam fonksiyonuna aktarın
-- İpucu: Tablo argümanlarını açmak için global 'unpack' fonksiyonunu kullanı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