Menu
Coddy logo textTech

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 ö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ı: 3
unpack() 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    15
Bu teknikler birbiriyle sorunsuz bir şekilde çalışır. Değerleri bir `table` içinde toplayabilir, tabloyu işleyebilir ve ardından tekrar ayrı değerlere `unpack` edebilirsiniz.
challenge icon

Gö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 sum adında ayrı bir fonksiyon oluşturun
  • Tablo değerlerini sum fonksiyonuna aktarmak için unpack() kullanın
  • sum fonksiyonundan 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

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