Literal Tabel
Seperti di Lua, tabel dibatasi dengan kurung kurawal.
some_values = {1, 2, 3, 4}some_values = {1, 2, 3, 4}Berbeda dengan Lua, assignment nilai ke sebuah kunci di tabel dilakukan dengan : (bukan =).
some_values = { name: "Bill", age: 200, ["favorite food"]: "rice"}some_values = { name: "Bill", age: 200, ["favorite food"]: "rice"}Kurung kurawal dapat dihilangkan jika hanya satu tabel pasangan key-value yang di-assign.
profile = height: "4 feet", shoe_size: 13, favorite_foods: ["ice cream", "donuts"]profile = height: "4 feet", shoe_size: 13, favorite_foods: ["ice cream", "donuts"]Baris baru dapat digunakan untuk memisahkan nilai sebagai ganti koma (atau keduanya):
values = { 1, 2, 3, 4 5, 6, 7, 8 name: "superman" occupation: "crime fighting"}values = { 1, 2, 3, 4 5, 6, 7, 8 name: "superman" occupation: "crime fighting"}Saat membuat literal tabel satu baris, kurung kurawal juga bisa dihilangkan:
my_function dance: "Tango", partner: "none"
y = type: "dog", legs: 4, tails: 1my_function dance: "Tango", partner: "none"
y = type: "dog", legs: 4, tails: 1Kunci literal tabel dapat berupa kata kunci bahasa tanpa perlu di-escape:
tbl = { do: "something" end: "hunger"}tbl = { do: "something" end: "hunger"}Jika Anda membangun tabel dari variabel dan ingin kunci sama dengan nama variabel, maka operator prefiks : dapat digunakan:
hair = "golden"height = 200person = { :hair, :height, shoe_size: 40 }
print_table :hair, :heighthair = "golden"height = 200person = { :hair, :height, shoe_size: 40 }
print_table :hair, :heightJika Anda ingin kunci field dalam tabel menjadi hasil suatu ekspresi, Anda dapat membungkusnya dengan [ ], seperti di Lua. Anda juga bisa menggunakan literal string langsung sebagai kunci tanpa tanda kurung siku. Ini berguna jika kunci memiliki karakter khusus.
t = { [1 + 2]: "hello" "hello world": true}t = { [1 + 2]: "hello" "hello world": true}Tabel Lua memiliki bagian array dan bagian hash, tetapi kadang-kadang berguna untuk membuat perbedaan semantik di antara keduanya. Anda dapat menggunakan [ ] sebagai ganti { } untuk mendeklarasikan tabel secara eksplisit sebagai array, dengan begitu akan mencegah pasangan key-value dituliskan di dalamnya.
some_values = [1, 2, 3, 4]list_with_one_element = [1, ]some_values = [1, 2, 3, 4]list_with_one_element = [1, ]