Menu
Coddy logo textTech

Tablo Oluşturma ve unpack()

Coddy'nin Lua Journey'sinin Logic & Flow bölümünün bir parçası — ders 6 / 54.

Lua, birden fazla değerle çalışmak için birbirini tamamlayan bir çift teknik sunar: tablo oluşturma ve table.unpack(). Bunlar, esnek argüman işleme gerektiren fonksiyonlarla çalışırken özellikle yararlıdır.

Süslü parantezli tablo oluşturucu sözdizimini kullanarak birden fazla değeri liste stili bir tabloda yakalayabilirsiniz. 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ı: 3

table.unpack() fonksiyonu tam tersini yapar; liste stilinde bir tablo alır ve tüm öğelerini ayrı değerler olarak döndürür. Bu, tablo içeriklerini bir fonksiyona ayrı argümanlar olarak aktarmanıza olanak tanır.

local numbers = {5, 10, 15}
print(table.unpack(numbers))  -- Çıktı: 5    10    15

Bu teknikler sorunsuz bir şekilde birlikte çalışır. Değerleri bir tabloda toplayabilir, tabloyu işleyebilir ve ardından tekrar tekil değerlere açabilirsiniz.

challenge icon

Görev

Kolay

Üç adet sayı (a, b ve c) alan ve tablo oluşturma ile table.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 bunları açın (unpack) ve toplamlarını hesaplayan başka bir fonksiyona aktarın.

Mantık:

  • Her üç argümanı da 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 table.unpack() kullanın
  • sum fonksiyonundan gelen sonucu döndürün

Parametreler:

  • a (sayı): Birinci sayı
  • b (sayı): İkinci sayı
  • c (sayı): Üçüncü sayı

Döndürür: Her üç sayının toplamı (sayı)

Kopya kağıdı

Tablo oluşturucu sözdizimi {a, b, c, ...} liste stilinde bir tablo oluşturur. Eleman sayısını almak için # kullanın.

local args = {10, 20, 30}
print(args[1])  -- Çıktı: 10
print(#args)    -- Çıktı: 3

table.unpack() liste stilinde bir tablo alır ve tüm elemanlarını ayrı değerler olarak döndürür; bu da tablo içeriğini bir fonksiyona ayrı argümanlar olarak aktarmanıza olanak tanır.

local numbers = {5, 10, 15}
print(table.unpack(numbers))  -- Çıktı: 5    10    15

Kendin dene

function forwardArguments(a, b, c)
    -- Toplamı hesaplayan ayrı bir fonksiyon oluşturun

    -- Her üç argümanı da içeren bir tablo oluşturun

    -- Tabloyu açın ve değerleri sum fonksiyonuna geçirin

end
quiz iconKendini test et

Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.

Logic & Flow bölümündeki tüm dersler