Lua Online - IDE, Editor, Compiler, Interpreter

Jalankan skrip Lua 5.4 secara instan dengan build WebAssembly dari interpreter referensinya. Ideal untuk belajar Lua atau menguji skrip game dan konfigurasi.

Lua 5.4 (wasmoon) · Berjalan di browser Anda, sehingga kode Anda tidak pernah sampai ke server kami.
main.luaLua
Output

            
        
Ctrl/⌘ + Enter untuk menjalankan

Fitur compiler Lua online (IDE, editor & interpreter)

Tulis, jalankan, dan uji kode Lua online secara gratis. Halaman ini berfungsi sebagai IDE, editor kode, compiler, dan interpreter Lua online sekaligus: ketik kode Anda, tekan Jalankan, dan lihat outputnya seketika. Semuanya berjalan di browser Anda, tanpa perlu menginstal apa pun dan tanpa membuat akun.

  • Jalankan kode seketika: Lua 5.4 (wasmoon), dengan output dalam waktu kurang dari satu detik setelah pemuatan pertama.
  • Editor kode: penyorotan sintaks, nomor baris, pencocokan kurung, dan penutupan kurung otomatis.
  • Error yang jelas: pesan error dan peringatan muncul di panel output, seperti di komputer Anda sendiri.
  • Layar penuh: Ctrl/⌘ + Shift + F, ukuran font yang dapat diatur, tata letak berdampingan atau bertumpuk, dan panel yang dapat diubah ukurannya.
  • Simpan otomatis: kode Anda disimpan di browser; download sebagai main.lua atau salin dengan satu klik.
  • Aman untuk bereksperimen: batas waktu dan tombol Hentikan mengakhiri loop tak terbatas.
  • Privat: runtime Lua berjalan di perangkat Anda, sehingga kode Anda tidak pernah diupload.
  • Mode gelap dan pintasan keyboard: Ctrl/⌘ + Enter menjalankan kode.
  • Gratis: tanpa daftar, tanpa batas penggunaan.

Pelajari bahasa pemrograman lain

Cara memakai compiler Lua online

  1. Tulis atau tempel skrip Lua ke editor. Reset contoh memulihkan kode awal.
  2. Tekan Jalankan atau gunakan Ctrl + Enter (⌘ + Enter di Mac).
  3. Semua yang Anda berikan ke print() muncul di panel Output. Seperti interpreter standar, beberapa argumen dipisahkan dengan tab, dan nil dicetak sebagai nil. Error runtime dan sintaks ditandai beserta nomor barisnya.
  4. 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 dan string.format), table, math, utf8, dan coroutine.
  • Closure, metatable, dan coroutine, sehingga Anda bisa berlatih Lua berorientasi objek dan bergaya generator.

Keterbatasan:

  • Gunakan print() untuk output. Output ditangkap dari print, jadi pakailah itu, bukan io.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
TugasSintaks
Variabel lokallocal x = 10
Menggabungkan string"a" .. "b"
Panjang string atau daftar#t
Tidak sama dengana ~= b
Perulangan numerikfor i = 1, 10, 2 do ... end
Mengiterasi daftar / tabelfor i, v in ipairs(t) / for k, v in pairs(t)
Memformat angkastring.format("%.2f", n)

Tips

  • Array Lua dimulai dari indeks 1, bukan 0, dan # hanya andal untuk urutan tanpa lubang nil.
  • Deklarasikan variabel dengan local. Tanpa itu, variabel menjadi global, yang lebih lambat dan sumber bug yang umum.
  • Hanya nil dan false yang bernilai salah (falsy). 0 dan 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.
Tips: Untuk mencetak isi tabel, lakukan perulangan dengan 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

Tersalin ke clipboard