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 bağımsız değişken işleme gerektiren işlevlerle çalışırken özellikle kullanışlıdır.Birden çok değeri, süslü parantezlerle kullanılan tablo oluşturucu söz dizimi aracılığıyla liste tarzı bir tabloya aktarabilirsiniz. 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ı: 3unpack() işlevi bunun tersini yapar. Liste tarzı bir tablo 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 geçirmenizi sağlar.Önemli: Lua'nın daha yeni sürümleri (5.2+) bu işlevi table.unpack() konumuna taşısa da bu ortam Lua 5.1 çalıştırdığından global unpack() işlevini kullanmalısın.local numbers = {5, 10, 15}
print(unpack(numbers)) -- Çıktı: 5 10 15Görev
KolayforwardArguments adında, a, b ve c olmak üzere three numbers alan ve table construction ile unpack() kullanarak bunların sum değerini döndüren bir function yazın.
{a, b, c} söz dizimini kullanarak three arguments containing bir table Create edin; ardından bunları unpack edin ve sum değerlerini calculates eden başka bir function'a pass edin.
Not: Bu ortamla uyumluluğu sağlamak için table.unpack() yerine global unpack() function kullanın.
Logic:
- all three arguments containing bir table Create etmek için
{a, b, c}kullanın - three parameters alan ve bunların sum değerini return eden
sumadlı ayrı bir function Create edin - table values değerlerini
sumfunction'a pass etmek içinunpack()kullanın - Sonucu
sumfunction'dan return edin
Parameters:
a(number): First numberb(number): Second numberc(number): Third number
Returns: all three numbers değerlerinin sum değeri (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 TablosuKendi başına pratik yap: Online Lua derleyicisi