Appearance
Tabellenliterale
Wie in Lua werden Tabellen mit geschweiften Klammern definiert.
yuescript
some_values = [1, 2, 3, 4]Anders als in Lua weist man einem Schlüssel in einer Tabelle mit : (statt =) einen Wert zu.
yuescript
some_values = {
name: "Bill",
age: 200,
["Lieblingsessen"]: "Reis"
}Die geschweiften Klammern können weggelassen werden, wenn eine einzelne Tabelle aus Schlüssel-Wert-Paaren zugewiesen wird.
yuescript
profile =
height: "4 Fuß",
shoe_size: 13,
favorite_foods: ["Eis", "Donuts"]Zeilenumbrüche können Werte statt eines Kommas trennen (oder zusätzlich):
yuescript
values = {
1, 2, 3, 4
5, 6, 7, 8
name: "Superman"
occupation: "Verbrechensbekämpfung"
}Beim Erstellen eines einzeiligen Tabellenliterals können die geschweiften Klammern ebenfalls weggelassen werden:
yuescript
my_function dance: "Tango", partner: "keiner"
y = type: "Hund", legs: 4, tails: 1Die Schlüssel eines Tabellenliterals können Sprach-Schlüsselwörter sein, ohne sie zu escapen:
yuescript
tbl = {
do: "etwas"
end: "Hunger"
}Wenn du eine Tabelle aus Variablen konstruierst und die Schlüssel den Variablennamen entsprechen sollen, kannst du den Präfix-Operator : verwenden:
yuescript
hair = "golden"
height = 200
person = { :hair, :height, shoe_size: 40 }
print_table :hair, :heightWenn der Schlüssel eines Feldes das Ergebnis eines Ausdrucks sein soll, kannst du ihn wie in Lua in [ ] setzen. Du kannst auch ein String-Literal direkt als Schlüssel verwenden und die eckigen Klammern weglassen. Das ist nützlich, wenn dein Schlüssel Sonderzeichen enthält.
yuescript
t = {
[1 + 2]: "hallo"
"Hallo Welt": true
}Lua-Tabellen haben einen Array-Teil und einen Hash-Teil, aber manchmal möchte man beim Schreiben von Lua-Tabellen eine semantische Unterscheidung zwischen Array- und Hash-Nutzung machen. Dann kannst du eine Lua-Tabelle mit [ ] statt { } schreiben, um eine Array-Tabelle darzustellen, und das Schreiben von Schlüssel-Wert-Paaren in einer Listentabelle ist nicht erlaubt.
yuescript
some_values = [1, 2, 3, 4]
list_with_one_element = [1, ]