Online Lua derleyici nasıl kullanılır
- Düzenleyiciye bir Lua betiği yazın veya yapıştırın. Örneği sıfırla, başlangıç kodunu geri yükler.
- Çalıştır'a basın veya Ctrl + Enter tuşlarını kullanın (Mac'te ⌘ + Enter).
print()'e verdiğiniz her şey Çıktı panelinde görünür. Standart yorumlayıcıda olduğu gibi birden çok argüman sekmeyle ayrılır venil,nilolarak yazdırılır. Çalışma zamanı ve sözdizimi hataları satır numarasıyla birlikte vurgulanır.- 5, 15 veya 60 saniyelik bir süre sınırı seçin. Çok uzun süren bir betik otomatik olarak durdurulur, Durdur ise onu hemen sonlandırır.
Lua çalışma zamanı küçüktür, 1 MB'ın çok altındadır; bu yüzden sayfa neredeyse anında çalıştırmaya hazır olur. Betiğinizi kaydetmek için Kopyala'yı veya main.lua'yı kullanın.
Betiğiniz, tarayıcınızın içindeki bir Web Worker'da çalışır. Hiçbir zaman yüklenmez ve sunucularımızda saklanmaz. Düzenleyici son kodunuzu yalnızca tarayıcınızın yerel depolama alanında hatırlar, başka hiçbir yerde değil.
Neler destekleniyor
Derleyici, C ile yazılmış referans Lua yorumlayıcısının WebAssembly derlemesi olan wasmoon üzerinden Lua 5.4 çalıştırır. Kodunuz JavaScript'e çevrilerek değil, gerçek Lua tarafından yürütülür.
- Lua 5.4 dili: tamsayı ve kayan noktalı alt türler, tamsayı bölme (
//), bit düzeyi işleçler,gotoile<const>ve<close>yerel öznitelikleri. - Standart kütüphaneler:
string(Lua kalıpları vestring.formatdahil),table,math,utf8vecoroutine. - Closure'lar, metatable'lar ve coroutine'ler; böylece nesne yönelimli ve üreteç tarzı Lua yazmayı deneyebilirsiniz.
Sınırlamalar:
- Çıktı için
print()kullanın. Çıktıprint'ten yakalanır, bu yüzdenio.writeyerine onu kullanın. - Standart girdi, ağ erişimi ve gerçek dosyalar yoktur. Test verilerinizi doğrudan betiğin içine koyun.
- C modülleri veya LuaRocks yoktur. Yalnızca düzenleyicideki saf Lua kodu çalışabilir.
- Her çalıştırma temiz bir Lua durumuyla başlar, bu yüzden önceki çalıştırmadan kalan genel değişkenler silinir.
Lua hızlı başvuru
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
| Görev | Sözdizimi |
|---|---|
| Yerel değişken | local x = 10 |
| Metinleri birleştirme | "a" .. "b" |
| Metnin veya listenin uzunluğu | #t |
| Eşit değil | a ~= b |
| Sayısal döngü | for i = 1, 10, 2 do ... end |
| Bir liste / bir tablo üzerinde dolaşma | for i, v in ipairs(t) / for k, v in pairs(t) |
| Sayıyı biçimlendirme | string.format("%.2f", n) |
İpuçları
- Lua dizileri 0'dan değil, 1. indeksten başlar ve
#, yalnızcanilboşluğu içermeyen diziler için güvenilirdir. - Değişkenleri
localile tanımlayın. Bu olmadan değişken geneldir; bu hem daha yavaştır hem de sık görülen bir hata kaynağıdır. - Yalnızca
nilvefalseyanlış sayılır. Lua'da0ve boş metin doğrudur. - Lua kalıpları düzenli ifadelere benzer ama daha basittir ve ters eğik çizgi yerine
%kullanır; örneğin%d+. Diğer dillerdeki tam düzenli ifadeler için Regex Test Aracı'nı deneyin.
pairs ile dolaşın veya metin ve sayı listeleri için table.concat(list, ", ") kullanın. Tablonun kendisini print(t)'ye vermek içeriğini listelemez.Sıkça sorulan sorular
Bu araç hangi Lua sürümünü kullanıyor?
Lua 5.4. Doğrulamak için print(_VERSION) çalıştırın. Lua 5.3 için yazılmış kod neredeyse her zaman değişmeden çalışır; Lua 5.1 veya LuaJIT kodu ise küçük değişiklikler gerektirebilir, örneğin unpack yerine table.unpack kullanmak gibi.
Roblox veya LÖVE betiklerini burada test edebilir miyim?
İşlevler, tablolar, metin işleme ve matematik gibi düz Lua mantığını test edebilirsiniz. Roblox servisleri (Roblox, Luau adlı kendi lehçesini kullanır) veya LÖVE'nin love.* işlevleri gibi oyun motoru API'leri burada bulunmaz.
io.read neden çalışmıyor?
Derleyicinin etkileşimli bir standart girdisi yoktur. Test değerlerinizi betiğin en üstünde değişken olarak tanımlayın.
Online olarak başka hangi dilleri çalıştırabilirim?
Online Python Derleyici ve Online Ruby Derleyici de tamamen tarayıcınızda çalışır.
Güncellendi