Cara memakai compiler Lua online
- Tulis atau tempel skrip Lua ke editor. Reset contoh memulihkan kode awal.
- Tekan Jalankan atau gunakan Ctrl + Enter (⌘ + Enter di Mac).
- Semua yang Anda berikan ke
print()muncul di panel Output. Seperti interpreter standar, beberapa argumen dipisahkan dengan tab, dannildicetak sebagainil. Error runtime dan sintaks ditandai beserta nomor barisnya. - Pilih batas waktu 5, 15, atau 60 detik. Skrip yang berjalan terlalu lama dihentikan otomatis, dan Hentikan mengakhirinya seketika.
Runtime Lua berukuran kecil, jauh di bawah 1 MB, sehingga halaman siap dijalankan hampir seketika. Gunakan Salin atau main.lua untuk menyimpan skrip Anda.
Skrip Anda berjalan di Web Worker di dalam browser Anda. Skrip tidak pernah diunggah dan tidak disimpan di server kami. Editor mengingat kode terakhir Anda di penyimpanan lokal browser Anda, dan tidak di tempat lain.
Yang didukung
Compiler ini menjalankan Lua 5.4 lewat wasmoon, build WebAssembly dari interpreter Lua acuan yang ditulis dalam C. Kode Anda dieksekusi oleh Lua sungguhan, bukan lewat terjemahan ke JavaScript.
- Bahasa Lua 5.4: subtipe integer dan float, pembagian integer (
//), operator bitwise,goto, serta atribut lokal<const>dan<close>. - Pustaka standar:
string(termasuk pola Lua danstring.format),table,math,utf8, dancoroutine. - Closure, metatable, dan coroutine, sehingga Anda bisa berlatih Lua berorientasi objek dan bergaya generator.
Keterbatasan:
- Gunakan
print()untuk output. Output ditangkap dariprint, jadi pakailah itu, bukanio.write. - Tanpa standard input, akses jaringan, atau file sungguhan. Letakkan data uji langsung di skrip.
- Tanpa modul C atau LuaRocks. Hanya kode Lua murni di editor yang bisa dijalankan.
- Setiap eksekusi mendapat state Lua yang baru, sehingga variabel global dari eksekusi sebelumnya dihapus.
Referensi singkat Lua
local Account = {}
Account.__index = Account
function Account.new(owner, balance)
return setmetatable({ owner = owner, balance = balance or 0 }, Account)
end
function Account:deposit(v)
self.balance = self.balance + v
end
local acc = Account.new("Ada")
acc:deposit(50)
print(acc.owner, acc.balance) --> Ada 50
for word in ("one two three"):gmatch("%a+") do
print(#word, word:upper())
end
print(7 // 2, 7 / 2) --> 3 3.5
| Tugas | Sintaks |
|---|---|
| Variabel lokal | local x = 10 |
| Menggabungkan string | "a" .. "b" |
| Panjang string atau daftar | #t |
| Tidak sama dengan | a ~= b |
| Perulangan numerik | for i = 1, 10, 2 do ... end |
| Mengiterasi daftar / tabel | for i, v in ipairs(t) / for k, v in pairs(t) |
| Memformat angka | string.format("%.2f", n) |
Tips
- Array Lua dimulai dari indeks 1, bukan 0, dan
#hanya andal untuk urutan tanpa lubangnil. - Deklarasikan variabel dengan
local. Tanpa itu, variabel menjadi global, yang lebih lambat dan sumber bug yang umum. - Hanya
nildanfalseyang bernilai salah (falsy).0dan string kosong bernilai benar di Lua. - Pola Lua mirip ekspresi reguler tetapi lebih sederhana, dan memakai
%alih-alih garis miring terbalik, seperti pada%d+. Untuk ekspresi reguler lengkap di bahasa lain, coba Penguji Regex.
pairs, atau gunakan table.concat(list, ", ") untuk daftar berisi string dan angka. Memberikan tabelnya langsung ke print(t) tidak mencantumkan isinya.Pertanyaan yang sering diajukan
Versi Lua mana yang dipakai?
Lua 5.4. Jalankan print(_VERSION) untuk memastikan. Kode yang ditulis untuk Lua 5.3 hampir selalu berjalan tanpa perubahan, sedangkan kode Lua 5.1 atau LuaJIT mungkin memerlukan perubahan kecil, misalnya mengganti unpack dengan table.unpack.
Bisakah saya menguji skrip Roblox atau LÖVE di sini?
Anda bisa menguji logika Lua biasa, seperti fungsi, tabel, penanganan string, dan matematika. API engine seperti layanan Roblox (Roblox memakai dialek Luau miliknya sendiri) atau fungsi love.* milik LÖVE tidak ada di sini.
Mengapa io.read tidak berfungsi?
Compiler ini tidak memiliki standard input interaktif. Tentukan nilai uji Anda sebagai variabel di bagian atas skrip.
Bahasa apa lagi yang bisa saya jalankan secara online?
Compiler Python Online dan Compiler Ruby Online juga berjalan sepenuhnya di browser Anda.
Diperbarui