Menu
CoddyTech

Cheat Sheet Lua

Terakhir diperbarui

Hello World & menjalankan kode

Lua sangat ringkas: satu pernyataan saja sudah bisa dijalankan.

OperasiSintaks
Mencetak satu barisprint("Hello, World!")
Mencetak beberapa nilaiprint("x", 1, true)
Menulis tanpa baris baruio.write("Hi")
Komentar-- this is a comment
Komentar beberapa baris--[[ ... ]]
Menggabungkan stringprint("Hi " .. name)
Menjalankan filelua app.lua
Shell interaktiflua

Variabel & tipe

Variabel bersifat global secara default; deklarasikan variabel lokal dengan local.

OperasiSintaks
Variabel lokallocal age = 30
Variabel globalcount = 0
Penetapan gandalocal a, b = 1, 2
Delapan tipenil, boolean, number, string, table, function, userdata, thread
Nil / booleannil, true, false
Memeriksa tipetype(x) mengembalikan "number"
Mengonversi ke angkatonumber("42")
Mengonversi ke stringtostring(42)

String

String tidak bisa diubah; kutip tunggal maupun ganda sama-sama bisa dipakai.

OperasiSintaks
Panjang#s atau string.len(s)
Menggabungkans1 .. s2
Huruf besar / kecils:upper(), s:lower()
Substrings:sub(1, 3)
Mencari substrings:find("ell")
Mengganti (gsub)s:gsub("a", "b")
Memformatstring.format("%05d", 42)
String panjang[[ multi\nline ]]

Table (struktur data inti)

Table adalah satu-satunya tipe terstruktur di Lua: bisa berperan sebagai array, map, dan object.

OperasiSintaks
Table kosonglocal t = {}
Gaya array (mulai dari 1)local t = {10, 20, 30}
Mengakses elemen arrayt[1] (elemen pertama)
Table gaya maplocal u = {name = "Ada", age = 30}
Mengakses nilai mapu.name atau u["name"]
Mengisi nilait[4] = 40, u.email = "a@x.com"
Panjang bagian array#t
Iterasi array (ipairs)for i, v in ipairs(t) do ... end
Iterasi semua key (pairs)for k, v in pairs(u) do ... end
Table bersaranglocal m = {a = {1, 2}}

Alur kontrol

Blok ditutup dengan end; hanya nil dan false yang bernilai falsy.

OperasiSintaks
If / elseif / elseif x > 0 then ... elseif x < 0 then ... else ... end
Operator logikaand, or, not
For numerikfor i = 1, 10 do ... end
For dengan langkahfor i = 10, 1, -1 do ... end
While loopwhile x < 100 do ... end
Repeat-untilrepeat ... until done
Breakbreak
Operator tidak sama denganif a ~= b then ... end

Fungsi

Fungsi adalah nilai first-class dan bisa mengembalikan beberapa hasil.

OperasiSintaks
Mendefinisikan fungsifunction add(a, b) return a + b end
Fungsi lokallocal function square(x) return x * x end
Fungsi anonimlocal f = function(x) return x * 2 end
Beberapa nilai kembalianfunction bounds() return 1, 10 end
Menangkap beberapa nilai kembalianlocal lo, hi = bounds()
Fungsi variadicfunction sum(...) ... end
Mengumpulkan vararglocal args = {...}
Method (sintaks titik dua)function obj:greet() ... end

Library string

Fungsi umum dari library string (bisa dipanggil sebagai s:fn()).

FungsiKegunaan
string.len(s)Panjang string
string.sub(s, i, j)Substring dari indeks i sampai j
string.upper(s)Salinan dalam huruf besar
string.rep(s, n)Mengulang string sebanyak n kali
string.find(s, p)Mencari pola, mengembalikan posisi awal/akhir
string.match(s, p)Mengembalikan kecocokan pola pertama
string.gsub(s, p, r)Mengganti semua kecocokan pola
string.format(fmt, ...)Memformat nilai menjadi string

Library table & math

Fungsi bantu untuk table gaya array dan angka.

FungsiKegunaan
table.insert(t, v)Menambahkan nilai di akhir
table.insert(t, i, v)Menyisipkan v di posisi i
table.remove(t, i)Menghapus dan mengembalikan elemen di i
table.concat(t, ", ")Menggabungkan elemen menjadi string
table.sort(t)Mengurutkan array di tempat
math.floor(x) / math.ceil(x)Membulatkan ke bawah / ke atas
math.max(...) / math.min(...)Argumen terbesar / terkecil
math.random(1, 6)Bilangan bulat acak dalam rentang

Metatable (singkat)

Metatable memungkinkan kamu mengatur perilaku table: operator, pengindeksan, dan lainnya.

OperasiSintaks
Menetapkan metatablesetmetatable(t, mt)
Mengambil metatablegetmetatable(t)
Cadangan untuk key yang tidak adamt.__index = defaults
Default lewat fungsimt.__index = function(t, k) ... end
Mengatur penjumlahanmt.__add = function(a, b) ... end
Mengatur tostringmt.__tostring = function(t) ... end
OOP berbasis prototypemt.__index = ClassTable

Sintaks Lua yang paling sering kamu pakai, dalam satu halaman. Cheat sheet Lua ini adalah referensi cepat untuk inti bahasanya: variabel dan tipe, string, alur kontrol, fungsi, dan table yang menjadi satu-satunya struktur data Lua yang fleksibel, ditambah sekilas tentang library standar dan metatable.

Semua yang ada di sini adalah Lua standar dan berjalan di interpreter bawaan. Salin yang kamu butuhkan, atau coba setiap potongan kode langsung di playground Lua, tanpa perlu instalasi.

FAQ cheat sheet Lua

Apakah cheat sheet Lua ini gratis?

Ya. Cheat sheet Lua ini sepenuhnya gratis, tanpa perlu daftar. Simpan di bookmark dan kembali kapan pun kamu perlu mencari operasi table, fungsi string, atau kata kunci alur kontrol.

Bagaimana table Lua bisa menjadi array sekaligus map?
Table hanyalah kumpulan pasangan key-value, dan key-nya bisa berupa nilai apa pun. Saat kamu memakai key bilangan bulat berurutan mulai dari 1 ({10, 20, 30}), table berperilaku seperti array; saat kamu memakai key string ({name = "Ada"}), table berperilaku seperti map. Kamu bahkan bisa mencampur keduanya dalam satu table. Itulah sebabnya Lua cukup punya satu tipe terstruktur: table mencakup array, dictionary, set, dan object.
Kenapa Lua memakai indeks mulai dari 1?
Berdasarkan konvensi dan desainnya, array Lua dimulai dari indeks 1, bukan 0, jadi t[1] adalah elemen pertama dan #t adalah jumlahnya. Operator panjang # dan fungsi library seperti table.insert dan ipairs semuanya mengasumsikan konvensi berbasis 1 ini, jadi mengikutinya membuat kode arraymu bekerja sesuai harapan.
Bisakah saya berlatih Lua secara online?

Bisa. Buka playground Lua untuk menjalankan potongan kode apa pun dari cheat sheet ini di browsermu, tanpa perlu menginstal Lua. Kalau kamu ingin belajar terarah, kursus Lua interaktif gratis dari Coddy membawamu dari variabel dan table sampai fungsi dan metatable, langkah demi langkah.

Apakah cheat sheet ini cocok untuk pemula?

Cocok. Isinya disusun mulai dari topik yang paling umum (variabel, string, table, alur kontrol) sampai yang lanjutan (library standar dan metatable), jadi kamu bisa memakai bagian atas sejak hari pertama dan pelan-pelan menguasai sisanya.

Ilustrasi bahasa pemrograman di Coddy

Belajar Lua bersama Coddy

Mulai