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 menangani beberapa nilai: konstruksi tabel dan unpack(). Teknik ini sangat berguna saat bekerja dengan fungsi yang perlu menangani argumen secara fleksibel.Kamu dapat mengumpulkan beberapa nilai ke dalam tabel bergaya list menggunakan sintaks konstruktor table dengan kurung kurawal. Ini mengumpulkan semua nilai ke dalam satu struktur table.
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. Dengan begitu, kamu dapat meneruskan isi tabel sebagai argumen individual ke 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 sama dengan lancar. Kamu dapat mengumpulkan nilai ke dalam tabel, memanipulasi tabel tersebut, lalu menguraikannya 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 tiga argumen menggunakan sintaks {a, b, c}, lalu bongkar isinya 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