Menu
CoddyTech

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.

Lua, birden fazla değerle çalışmak için birbirini tamamlayan iki teknik sunar: tablo oluşturma ve 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ı: 3
unpack() 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    15
Bu teknikler birbiriyle sorunsuz bir şekilde çalışır. Değerleri bir tabloda toplayabilir, tabloyu değiştirebilir ve ardından değerleri yeniden ayrı ayrı açabilirsiniz.
challenge icon

Gö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 sum adlı ayrı bir işlev oluşturun
  • Tablo değerlerini sum işlevine aktarmak için unpack() kullanın
  • sum iş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

end
quiz iconKendini test et

Bu 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

Kendi başına pratik yap: Online Lua derleyicisi