Menu
CoddyTech

Pembuatan tabel & unpack()

Termasuk bagian Logika dan Alur dalam perjalanan Lua di Coddy. Pelajaran 6 dari 54.

Lua menyediakan sepasang teknik yang saling melengkapi untuk bekerja dengan beberapa nilai: pembuatan tabel dan unpack(). Teknik ini sangat berguna saat kamu bekerja dengan fungsi yang membutuhkan penanganan argumen yang fleksibel.Kamu dapat mengumpulkan beberapa nilai ke dalam tabel bergaya list menggunakan sintaks table constructor dengan kurung kurawal. Ini mengumpulkan semua nilai ke dalam satu struktur tabel.
local args = {10, 20, 30}
print(args[1])  -- output: 10
print(#args)    -- output: 3
Fungsi unpack() melakukan hal sebaliknya. Fungsi ini mengambil tabel bergaya list dan mengembalikan semua elemennya sebagai nilai terpisah. Ini memungkinkan kamu meneruskan isi tabel sebagai argumen terpisah ke suatu fungsi.Penting: Meskipun versi Lua yang lebih baru (5.2+) memindahkan fungsi ini ke table.unpack(), lingkungan ini menjalankan Lua 5.1, jadi kamu harus menggunakan fungsi global unpack().
local numbers = {5, 10, 15}
print(unpack(numbers))  -- output: 5    10    15
Teknik-teknik ini bekerja bersama dengan lancar. Kamu bisa mengumpulkan nilai ke dalam tabel, memanipulasi tabel, lalu membongkarnya kembali menjadi nilai-nilai individual.
challenge icon

Tantangan

Mudah

Tulis fungsi forwardArguments yang menerima tiga angka, a, b, dan c, lalu mengembalikan jumlahnya dengan menggunakan pembuatan tabel dan unpack().

Buat tabel yang berisi ketiga argumen menggunakan sintaks {a, b, c}, lalu uraikan nilainya dan teruskan ke fungsi lain yang menghitung jumlahnya.

Catatan: Gunakan fungsi global unpack(), bukan table.unpack(), untuk memastikan kompatibilitas dengan lingkungan ini.

Logika:

  • Gunakan {a, b, c} untuk membuat tabel yang berisi ketiga argumen
  • Buat fungsi terpisah bernama sum yang menerima tiga parameter dan mengembalikan jumlahnya
  • Gunakan unpack() untuk meneruskan nilai tabel ke fungsi sum
  • Kembalikan hasil dari fungsi sum

Parameter:

  • a (angka): Angka pertama
  • b (angka): Angka kedua
  • c (angka): Angka ketiga

Nilai yang dikembalikan: Jumlah ketiga angka (angka)

Coba sendiri

function forwardArguments(a, b, c)
    -- Buat fungsi terpisah untuk menghitung jumlahnya

    -- Buat tabel yang berisi ketiga argumen

    -- Uraikan tabel, lalu teruskan nilainya ke fungsi penjumlahan
    -- Petunjuk: Gunakan fungsi global 'unpack' untuk menguraikan argumen dalam tabel

end
quiz iconUji dirimu

Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.

Semua pelajaran di Logika dan Alur

Latihan sendiri: Compiler Lua online