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 özellikle esnek argüman yönetimine ihtiyaç duyan fonksiyonlarla çalışırken kullanışlıdır.Süslü parantezlerle table constructor syntax kullanarak birden fazla değeri liste stilinde bir tabloya yakalayabilirsiniz. Bu işlem, tüm değerleri tek bir tablo yapısında toplar.local args = {10, 20, 30}
print(args[1]) -- Çıktı: 10
print(#args) -- Çıktı: 3unpack() işlevi tam tersini yapar; liste stilindeki 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ı argümanlar olarak iletmenize olanak tanır.Önemli: Lua'nın daha yeni sürümleri (5.2+) bu işlevi table.unpack() konumuna taşımış olsa da, bu ortam Lua 5.1 çalıştırır, bu nedenle global unpack() işlevini kullanmalısınız.local numbers = {5, 10, 15}
print(unpack(numbers)) -- Çıktı: 5 10 15Görev
KolayÜç adet sayı (a, b ve c) alan ve tablo oluşturma ile 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 bu değerleri unpack edin ve toplamlarını hesaplayan başka bir fonksiyona aktarın.
Not: Bu ortamla uyumluluk sağlamak için lütfen table.unpack() yerine global unpack() fonksiyonunu kullanın.
Mantık:
- Üç argümanın 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
sumadında ayrı bir fonksiyon oluşturun - Tablo değerlerini
sumfonksiyonuna aktarmak içinunpack()kullanın sumfonksiyonundan dönen sonucu döndürün
Parametreler:
a(number): Birinci sayıb(number): İkinci sayıc(number): Üçüncü sayı
Döndürür: Üç sayının toplamı (number)
Kendin dene
function forwardArguments(a, b, c)
-- Toplamı hesaplayan ayrı bir fonksiyon oluştur
-- Üç argümanın hepsini içeren bir tablo oluştur
-- Tabloyu aç ve değerleri toplam fonksiyonuna geçir
-- İpucu: Tablo argümanlarını genişletmek için global 'unpack' fonksiyonunu kullan
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 Tablosu