Pembuatan tabel & unpack()
Termasuk bagian Logika dan Alur dalam perjalanan Lua di Coddy. Pelajaran 6 dari 54.
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: 3unpack() 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 15Tantangan
MudahTulis 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
sumyang menerima tiga parameter dan mengembalikan jumlahnya - Gunakan
unpack()untuk meneruskan nilai tabel ke fungsisum - Kembalikan hasil dari fungsi
sum
Parameter:
a(angka): Angka pertamab(angka): Angka keduac(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
endPelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.
Semua pelajaran di Logika dan Alur
1Iterasi Tabel Tingkat Lanjut
Iterasi dengan pairs()Iterasi dengan ipairs()pairs() vs. ipairs()Rangkuman: Lembar Karakter2Fungsi library tabel Lainnya
table.concat()Pembuatan tabel & unpack()table.sort()Pengurutan Kustom dengan FungsiRangkuman, Papan Skor TertinggiLatihan sendiri: Compiler Lua online