Zum Inhalt springen

Literale

Alle primitiven Literale in Lua können verwendet werden. Das gilt für Zahlen, Strings, Booleans und nil.

Anders als in Lua sind Zeilenumbrüche innerhalb einfacher und doppelter Anführungszeichen ohne Escape-Sequenz erlaubt:

some_string = "Hier ist ein String
mit einem Zeilenumbruch."
-- Mit der #{}-Syntax kannst du Ausdrücke in String-Literale einbinden.
-- String-Interpolation gibt es nur in doppelt angeführten Strings.
print "Ich bin mir zu #{math.random! * 100}% sicher."

Du kannst Unterstriche in Zahlenliteralen verwenden, um die Lesbarkeit zu erhöhen.

integer = 1_000_000
hex = 0xEF_BB_BF
binary = 0B10011

Das Präfix | führt ein mehrzeiliges String-Literal im YAML-Stil ein:

str = |
key: value
list:
- item1
- #{expr}

Damit lässt sich strukturierter, mehrzeiliger Text bequem schreiben. Alle Zeilenumbrüche und Einrückungen bleiben relativ zur ersten nicht-leeren Zeile erhalten, und Ausdrücke innerhalb von #{...} werden automatisch als tostring(expr) interpoliert.

Der YAML-Mehrzeilen-String erkennt automatisch das gemeinsame führende Leerraumpräfix (minimale Einrückung über alle nicht-leeren Zeilen) und entfernt es aus allen Zeilen. So kannst du deinen Code optisch einrücken, ohne den resultierenden String zu verändern.

fn = ->
str = |
foo:
bar: baz
return str

Die interne Einrückung bleibt relativ zum entfernten gemeinsamen Präfix erhalten, wodurch saubere, verschachtelte Strukturen möglich sind.

Alle Sonderzeichen wie Anführungszeichen (") und Backslashes (\) im YAML-Mehrzeilen-Block werden automatisch escaped, sodass der erzeugte Lua-String syntaktisch korrekt ist und wie erwartet funktioniert.

str = |
path: "C:\Program Files\App"
note: 'He said: "#{Hello}!"'

YueScriptCompiler

Compiler wird geladen…