Eine Variable ist ein Name, der einen Wert hält. Variablenwerte können Zahlen, Strings, Booleans, Datentypen und mehr sein.
Namensvariablen
Variablen Namen können beliebige nicht reservierte Zeichenfolgen aus Buchstaben, Ziffern und Unterstrichen sein, die nicht mit einer Ziffer beginnen.
LETTERS -- gültig
a1 -- gültig
var_name -- gültig
_test -- gültig
if -- NICHT gültig
25th -- NICHT gültigVariablen Namen sind groß- und kleinschreibungsempfindlich, daher sind TestVar und TESTVAR unterschiedliche Namen. Vermeiden Sie es, Variablen mit einem Unterstrich und allen Großbuchstaben zu benennen, wie z.B. _VERSION, da Luau diese möglicherweise für interne globale Variablen reserviert.
Beste Praktiken
Es ist eine bewährte Praxis, Wörter vollständig auszuschreiben. Abkürzungen machen den Code zwar einfacher zu schreiben, aber schwerer zu lesen. Die Einhaltung gängiger Namenspraktiken beim Benennen Ihrer Variablen kann Ihnen und anderen helfen, deren Bedeutung oder Zweck zu verstehen:
- Verwenden Sie PascalCase Namen für Klassen und enum-ähnliche Objekte.
- Verwenden Sie PascalCase Namen für alle Roblox APIs. camelCase APIs sind größtenteils veraltet.
- Verwenden Sie camelCase Namen für lokale Variablen, Mitgliedswerte und Funktionen.
- Schreiben Sie keine gesamten Akronyme innerhalb von Namen in Großbuchstaben. Zum Beispiel, schreiben Sie aJsonVariable oder MakeHttpCall.
Reservierte Namen
Luau reserviert die folgenden Schlüsselwörter, sodass Sie diese nicht verwenden können, um Variablen oder Funktionen zu benennen:
- and
- for
- or
- break
- function
- repeat
- do
- if
- return
- else
- in
- then
- elseif
- local
- true
- end
- nil
- until
- false
- not
- while
Werte zuweisen
Um eine Variable zu erstellen und ihr einen Wert zuzuweisen, verwenden Sie den = Operator. Setzen Sie die Variable links vom = und den Wert rechts. Wenn Sie keinen Wert angeben, ist der Wert nil.
Variablen können globale oder lokale Geltungsbereiche haben. Sie haben standardmäßig einen globalen Geltungsbereich, aber es ist fast immer besser, sie mit lokalem Geltungsbereich zu erstellen, da Luau auf lokale Variablen schneller zugreift als auf globale. Um einer Variablen einen lokalen Geltungsbereich zu geben, setzen Sie das Schlüsselwort local vor den Namen der Variablen, wenn Sie ihr einen Wert zuweisen. Um ihr einen lokalen Geltungsbereich zu geben und auch eine Neuzuweisung zu verhindern, verwenden Sie const anstelle von local. Weitere Informationen finden Sie unter Geltungsbereich.
local nilVar
local x = 10
local word = "Hallo"
local boolean = true
print(nilVar) -- nil
print(x) -- 10
print(word) -- Hallo
print(boolean) -- trueWerte mehreren Variablen zuweisen
Sie können mehreren Variablen in einer Zeile Werte zuweisen, indem Sie jedes Variablen-Wert-Paar mit einem Komma trennen. Wenn Sie mehr Variablen als Werte haben, weist Luau den zusätzlichen Variablen nil zu. Wenn Sie mehr Werte als Variablen haben, weist Luau die zusätzlichen Werte keiner Variablen zu.
local a, b, c = 1, 2, 3
local d, e, f = 4, 5 -- zusätzliche Variable
local g, h = 7, 8, 9 -- zusätzlicher Wert
print(a, b, c) -- 1, 2, 3
print(d, e, f) -- 4, 5, nil
print(g, h) -- 7, 8Werte ändern
Um den Wert einer Variablen zu ändern, weisen Sie ihr einen anderen Wert zu.
local x, y = 10, 20
print(x) -- 10
print(y) -- 20
x = 1000
y = 2000
print(x) -- 1000
print(y) -- 2000Const-Variablen
Um eine Variable zu erstellen, die Sie nicht neu zuweisen können, verwenden Sie const anstelle von local. Der Versuch, eine const-Variable neu zuzuweisen, führt zu einem Fehler, auch über einen komplexen Zuweisungsoperator wie +=.
const MAX_HEALTH = 100
MAX_HEALTH = 50 -- Fehler: kann eine const-Variable nicht neu zuweisen
MAX_HEALTH += 1 -- Fehler: kann eine const-Variable nicht neu zuweisenWie local akzeptiert const eine Typannotation, wie z.B. const MAX_HEALTH: number = 100.
Sie können auch eine Funktion mit const deklarieren, was eine Neuzuweisung des Namens der Funktion verhindert.
const function addOneAndTwo()
local result = 1 + 2
print(result)
end
addOneAndTwo = nil -- Fehler: kann eine const-Variable nicht neu zuweisenconst macht die Variable selbst unveränderlich, nicht den Wert, den sie hält. Wenn eine const-Variable einen Tabelle hält, können Sie dennoch den Inhalt der Tabelle ändern. Um die Inhalte ebenfalls unveränderlich zu machen, verwenden Sie table.freeze().
const SETTINGS = { volume = 0 }
SETTINGS.volume = 1 -- ok, ändert einen Wert innerhalb der Tabelle
SETTINGS = {} -- Fehler: kann eine const-Variable nicht neu zuweisenIm Gegensatz zu den Schlüsselwörtern in Reservierte Namen ist const kontextabhängig. Luau behandelt es nur als Schlüsselwort, wo local gültig ist, sodass vorhandener Code, der const als Variablennamen verwendet, weiterhin funktioniert.
local const = 1
print(const) -- 1
const = 2 -- ok, `const` ist hier ein VariablennameFür weitere Informationen und Randfälle siehe die Luau-Dokumentation.