Luau globals
*Dieser Inhalt wurde mit KI (Beta) übersetzt und kann Fehler enthalten. Um diese Seite auf Englisch zu sehen, klicke hier.
Zusammenfassung
Funktionen
Wirft einen Fehler, wenn die bereitgestellte value auf false oder nil zurückgelöst wird.
Stoppt die Thread-Ausführung und wirft einen Fehler.
Gibt die Gesamtgröße des Speicher堆s in Kilobyte zurück.
Gibt die metatable des angegebenen Tisches zurück.
Gibt eine Iterationsfunktion und die Tabelle für die Verwendung in einem for-Schleife zurück.
Gibt den bereitgestellten Code als Funktion zurück, die ausgeführt werden kann.
Erstellt eine leere userdata, mit der Option, dass es ein Metatable hat.
Eine Iterationsfunktion für den Einsatz in Schleifen.
Gibt eine Iterationsfunktion und die bereitgestellte Tabelle für die Verwendung in einem for Schleifen zurück.
Führt die bereitgestellte Funktion aus und fängt jeden Fehler, den sie wirft, und gibt die Erfolge und Ergebnisse der Funktion zurück.
Druckt alle bereitgestellten Werte auf die Ausgabe.
Gibt zurück, ob v1 gleich v2 ist, indem ihre Metamethoden umgangen werden.
Holt sich den tatsächlichen Wert von table[index], indem er alle Metamethoden umgeht.
Gibt die Länge der Zeichenkette oder des Tabells zurück, indem alle Metamethoden umgangen werden.
Setzt den tatsächlichen Wert von table[index], indem es alle Metamethoden umgeht.
Gibt den Wert zurück, der vom angegebenen Modulskript zurückgegeben wurde, und führt ihn aus, wenn er noch nicht ausgeführt wurde.
Gibt alle Argumente nach dem angegebenen Index zurück.
Legt das Metatable des angegebenen Tisches fest.
Gibt den angegebenen Wert in eine Zahl umgewandelt zurück oder nil, wenn es unmöglich ist.
Gibt den angegebenen Wert in einen String umgewandelt zurück oder nil wenn er unmöglich ist.
Gibt den grundlegenden Typ des bereitgestellten Objekts zurück.
Gibt alle Elemente aus der angegebenen Liste als Tupelzurück.
Ähnlich wie pcall(), außer dass es einen benutzerdefinierten Fehler处理器 verwendet.
Funktionen
assert
Wirft einen Fehler, wenn die bereitgestellte value ist false oder nil. Wenn die Aussage bestanden wird, gibt sie alle Werte zurück, die ihr übergeben wurden.
local product = 90 * 4assert(product == 360, "Oh dear, multiplication is broken")-- The line above does nothing, because 90 times 4 is 360
Parameter
Der Wert, der gegen geltend gemacht werden wird.
Der Text, der im Fehler angezeigt wird, wenn die Aussage fehlschlägt.
Rückgaben
error
Beendet die letzte geschützte Funktion, die aufgerufen wird, und gibt message als Nachrichtaus.Wenn die Funktion, die den Fehler enthält, nicht in einer geschützten Funktion wie pcall() aufgerufen wird, endet das Skript, das die Funktion aufgerufen hat.Die Fehlerfunktion selbst kehrt nie zurück und verhält sich wie ein Skriptfehler.
Das level Argument gibt an, wie die Fehlerposition zu erhalten ist.Mit der Stufe 1 (der Standard) ist die Fehlerposition, wo die Fehlerfunktion aufgerufen wurde.Punkt Level 2 zeigt den Fehler an, wo die Funktion, die Fehler aufgerufen hat, aufgerufen wurde; und so weiter.Das Überspringen einer Stufe 0 vermeidet die Zugabe von Fehlerstandortinformationen an die Nachricht.
Parameter
Die Fehlermeldung zum Anzeigen.
Das Ausmaß der Informationen, die gedruckt werden sollen. Standard ist 1.
Rückgaben
getmetatable
Gibt die metatable des angegebenen Tisches zurück t, wenn es eine hat, sonst gibt es nil zurück.Wenn t ein Metatable hat und die __metatable Metamethode festlegenist, gibt es stattdessen diesen Wert zurück.
-- Getmetatable demonstrieren:local meta = {}local t = setmetatable({}, meta)print(getmetatable(t) == meta) --> wahr-- Mache das ursprüngliche Metatable unerreichbar, indem du die __metatable Metamethode festlegst:meta.__metatable = "protected"print(getmetatable(t)) --> protected
Parameter
Das Objekt, um die Metatable abzurufen.
Rückgaben
ipairs
Gibt drei Werte zurück: eine Iterationsfunktion, die Tabelle t und die Zahl 0.Jedes Mal, wenn die Iterationsfunktion aufgerufen wird, gibt sie die nächste numerische Index-Wertpaar in der Tabelle zurück.Wenn in einem generischen for-Schleife verwendet, können die Rückgabewerte verwendet werden, um über jeden numerischen Index in der Tabelle zu iterieren:
local fruits = {"apples", "oranges", "kiwi"}for index, fruit in ipairs(fruits) doprint(index, fruit) --> 1 äpfel, 2 orangen, 3 kiwi usw.end
Parameter
Eine Tabelle, deren Elemente durchlaufen werden sollen.
loadstring
Lädt Luau-Code aus einer Zeichenkette und gibt ihn als Funktion zurück.
Im Gegensatz zu Standard-Lua 5.1 kann Roblox' Luau den kompilierten Bytecode nicht mit loadstring() laden.
loadstring() ist standardmäßig deaktiviert. Für Anleitungen zur Aktivierung siehe ServerScriptService .
WARNUNG: Diese Methode deaktiviert bestimmte Luau-Optimierungen auf der zurückgegebenen Funktion.Bei der Verwendung von loadstring() muss äußerste Vorsicht walten; wenn deine Absicht ist, Benutzern zu ermöglichen, Code in deiner Erlebnisauszuführen, stelle sicher, dass die Umgebung der zurückgegebenen Funktion mit getfenv() und setfenv() geschützt wird.
Parameter
Rückgaben
next
Gibt das erste Schlüssel/Wert-Paar in der Arrayzurück.Wenn ein lastKey -Argument angegeben wurde, gibt es die nächste Element in der Liste zurück, basierend auf dem Schlüssel, der bereitgestellt wurde.Die Reihenfolge, in der die Indizes aufgelistet sind, wird nicht angegeben, auch nicht für numerische Indizes.Um eine Tabelle in numerischer Reihenfolge zu durchlaufen, verwende eine numerische Schleife oder ipairs.
Das Verhalten von Weiter ist unbestimmt, wenn du während der Durchsuche einem nicht existierenden Feld in der Tabelle einen Wert zuweist.Du kannst jedoch vorhandene Felder modifizieren.Insbesondere können Sie vorhandene Felder löschen.
Parameter
Das Array, das durchsucht werden soll.
Der letzte Schlüssel, der zuvor aus einem Anruf bei Nächster abgerufen wurde.
Rückgaben
pairs
Gibt eine Iterationsfunktion zurück, die übermittelte Tabelle t und nil, so dass die Konstruktion alle Schlüssel/Werte-Paare dieser Tabelle während der Verwendung in einem generischen for -Schleifen durchlaufen wird:
local scores = {["John"] = 5,["Sally"] = 10}for name, score in pairs(scores) doprint(name .. " has score: " .. score)end
Parameter
Eine Array- oder Dictionär-Tabelle, die durchlaufen wird.
pcall
Ruft die Funktion func mit den angegebenen Argumenten im geschützten Modus auf.Das bedeutet, dass kein Fehler innerhalb von func verbreitet wird; stattdessen fängt pcall() den Fehler ein und gibt einen Codeszurück.Sein erstes Ergebnis ist der Statuscode (ein boolescher Wert), der wahr ist, wenn der Anruf ohne Fehler erfolgreich ist.In einem solchen Fall gibt pcall() auch alle Ergebnisse der Anrufe nach diesem ersten Ergebnis zurück.Im Falle eines Fehlers gibt pcall() false plus die Nachrichtzurück.
Parameter
Rückgaben
Erhält eine beliebige Anzahl von Argumenten und druckt ihre Werte in die Ausgabe aus. print ist nicht für formatierte Ausgabe gedacht, sondern nur als schnelle Möglichkeit, einen Wert anzuzeigen, typischerweise für die Fehlerbehebung.Für eine formatierte Ausgabe verwende string.format() .Auf Roblox ruft print nicht tostring an, aber die __tostring Metamethode wird immer noch abgefeuert, wenn die Tabelle eine hat.
Parameter
Jede Anzahl von Argumenten, die ausgegeben werden sollen.
Rückgaben
rawget
Holt den tatsächlichen Wert von table[index] , ohne irgendeine Metamethode aufzurufen.
Parameter
Die Tabelle, die referenziert werden soll.
Der Index, von dem man abkommt t.
Rückgaben
rawset
Setzt den tatsächlichen Wert von table[index] auf einen bestimmten value, ohne eine Metamethode aufzurufen.
Parameter
Die Tabelle, die referenziert werden soll.
Der Index, der in t festgelegt werden muss, auf einen bestimmten value . Muss sich von nil unterscheiden.
Der Wert, der auf einen bestimmten index in der Tabelle t gesetzt werden soll.
Rückgaben
require
Führt die bereitgestellte ModuleScript aus und gibt zurück, was die ModuleScript zurückgegeben hat (normalerweise eine Tabelle oder eine Funktion).Wenn die ModuleScript noch nicht ausgeführt wurde, wird sie ausgeführt.
Wenn stattdessen ein Zeichenpfad bereitgestellt wird, wird er zuerst in Bezug auf das Skript, das aufgerufen hat, aufgelöst, was der semantischen Ähnlichkeit der Luau-Ausdruck entspricht.Zum Beispiel enthält jedes Paar von require() Ausdrücken im folgenden Beispiel zwei funktional gleichwertige Aufrufe.
-- "./" ist gleich Skript, das. PL: die Skripts.Parentrequire(script.Parent.ModuleScript)require("./ModuleScript")-- /"..." ist gleich Skript, das. PL: die Skripts.Parent.Parentrequire(script.Parent.Parent.ModuleScript)require("../ModuleScript")
Im Besonderen sind die Semantik der Auflösung von require-by-string wie folgt:
- Schnurpfade müssen mit ./ oder ../ beginnen, wobei ./ gleich script.Parent und ../ gleich script.Parent.Parent ist.
- Wenn der gelöste Pfad auf einen Instance zeigt, der kein ModuleScript ist, wird require() versuchen, einen ModuleScript mit dem Namen Init oder init zu finden, der diesem Instance zugewiesen ist, und stattdessen zu verwenden, wenn er vorhanden ist.
- Wenn das gewünschte ModuleScript nicht zur Zeit, in der require() aufgerufen wird, vorhanden ist, scheitert der Anruf und es wird ein Fehler geworfen.Mit anderen Worten, require-by-string ist nicht blockierend: Es wartet nicht implizit darauf, dass ein ModuleScript erstellt wird.
Sobald das Rückgabeelement durch einen ersten require() Anruf eines ModuleScript erstellt wurde, werden zukünftige require() Anrufe für dasselbe ModuleScript (auf derselben Seite der Client-Server-Grenze) den Code nicht erneut ausführen.Stattdessen wird ein Verweis auf das gleiche Rückgabeelement, das durch die ursprüngliche require() Anruf erstellt wurde, angegeben.Dieses Verhalten ermöglicht das Teilen von Werten über verschiedene Skripte, da mehrere require() Aufrufe aus verschiedenen Skripten dasselbe zurückgegebene Objekt referenzieren werden.Wenn das zurückgegebene Objekt eine Tabelle ist, werden alle Werte, die innerhalb der Tabelle gespeichert sind, von jedem Skript geteilt und zugänglich gemacht, das ModuleScript erfordert.
Wie oben erwähnt, überquert das "Objekt-Teilen"-Verhalten nicht die Client-Server-Grenze.Das bedeutet, dass, wenn ein ModuleScript auf den Client und den Server zugänglich ist (z. B. durch Platzierung in ReplicatedStorage ) und require() von beiden einem LocalScript und einem Script aufgerufen wird, der Code im ModuleScript ausgeführt wird, und der LocalScript erhält ein einzigartiges Rückgabeelement von dem, das vom Script empfangen wird.
Beachten Sie auch, dass, wenn der ModuleScript der Benutzer ausgeführt werden möchte, der auf der Instanz basierende Name MainModule , obwohl nur auf dem Server, über die Funktion require() auf der Asset-ID des ModuleScript geladen werden kann.
Parameter
Das ModuleScript, das ausgeführt wird, um den Rückgabewert zu erhalten, den es liefert, oder einen Verweis auf einen (eine Zeichenpfad oder Asset-ID).
Rückgaben
Was die ModuleScript zurückgegeben hat (normalerweise eine Tabelle oder eine Funktion).
select
Gibt alle Argumente nach Argumentnumber index zurück. Wenn negativ, wird es vom Ende der Argumentliste zurückkehren.
print(select(2, "A", "B", "C")) --> B Cprint(select(-1, "A", "B", "C")) --> C
Wenn das Argument index auf "#" gesetzt wird, wird die Anzahl der Argumente, die nach der Rückgabe übergeben wurden, zurückgegeben.
print(select("#", "A", "B", "C")) --> 3
Parameter
Der Index des Arguments, um alle Argumente nach args zurückzugeben.Wenn es auf "#" festgelegt ist, wird die Anzahl der übergebenen Argumente, nachdem es zurückgegeben wurde, zurückgegeben.
Eine Tuplizität von Argumenten.
Rückgaben
setmetatable
Setzt das Metatable für den angegebenen Tisch t auf newMeta.Wenn newMeta ist nil , wird die Metatable von t entfernt.Schließlich gibt diese Funktion die Tabelle t zurück, die ihr übergeben wurde.Wenn bereits eine Metamethode hat, deren Metamethode festlegenist, ruft dies einen Fehler auf.
local meta = {__metatable = "protected"}local t = {}setmetatable(t, meta) -- Das legt das Metatable von t fest-- Wir haben jetzt einen Tisch, t, mit einem Metatisch. Wenn wir versuchen, ihn zu ändern...setmetatable(t, {}) --> Error: cannot change a protected metatable
Parameter
Die Tabelle, um das Metatable festzulegen.
Wenn nil , wird das Metatable der angegebenen Tabelle t entfernt. Andernfalls wird das Metatable für die angegebene Tabelle t festgelegt.
Rückgaben
tonumber
Versuche, die Arg in eine Zahl mit einer angegebenen Basis umzuwandeln, um den Wert zu interpretieren.Wenn es nicht konvertiert werden kann, gibt diese Funktion nil zurück.
Die Basis kann eine beliebige Zahl zwischen 2 und 36 sein, einschließlich.In Basen über 10 repräsentiert der Buchstabe 'A' (in Groß- oder Kleinschreibung) 10, 'B' repräsentiert 11, und so weiter, mit 'Z' 35.In Basis 10 (der Standard) kann die Zahl einen Dezimalteil sowie einen optionalen Exponentialteil haben.In anderen Basen werden nur unsignierte Ganzzahlen akzeptiert.
Wenn ein String mit 0x beginnt und keine Basis bereitgestellt wird, wird der 0x gekürzt und die Basis wird als 16 oder hexadezimal angenommen.
print(tonumber("1337")) --> 1337 (annimiert basis 10, dezimal)print(tonumber("1.25")) --> 1.25 (basis 10 kann dezimale teile haben)print(tonumber("3e2")) --> 300 (basis 10 kann exponentiellen anteil haben, 3 × 10 ^ 2)print(tonumber("25", 8)) --> 21 (basis 8, oktal)print(tonumber("0x100")) --> 256 (annimiert basis 16, hexadezimal)print(tonumber("roblox")) --> nil (erzeugt keinen fehler)-- Tipp: Verwende mit Assert, wenn du unkonvertierbare Zahlen möchtest, um einen Fehler zu erhebenprint(assert(tonumber("roblox"))) --> Error: assertion failed
Parameter
Das Objekt, das in eine Zahl umgewandelt werden soll.
Die numerische Basis, um arg in zu konvertieren.
Rückgaben
tostring
Erhält ein Argument von beliebigem Typ und wandelt es in eine Zeichenkette in einem vernünftigen Format um.Für die vollständige Kontrolle, wie Zahlen konvertiert werden, verwende String.format.Wenn das Metatable von e eine __tostring Metamethode hat, wird es mit e als einzigem Argument aufgerufen und gibt das Ergebnis zurück.
local isRobloxCool = true-- Konvertieren Sie den booleschen in eine Zeichenfolge und kombinieren Sie dann:print("Roblox is cool: " .. tostring(isRobloxCool)) --> Roblox is cool: true
Parameter
Das Objekt, das in eine Stringumgewandelt werden soll.
Rückgaben
type
Gibt die Art seines einzigen Arguments zurück, das als String codiert ist.Die möglichen Ergebnisse dieser Funktion sind "nil" (eine Zeichenfolge, nicht der Wert nil), "number" , "string" , "boolean" , "table" , "vector" , "function" , "thread" , "userdata" , und "buffer" .Die buffer- und vector-Primitiven sind Ergänzungen von Luau, nicht von Lua.
Parameter
Das Objekt, das die Art zurückgibt.
Rückgaben
unpack
Gibt die Elemente aus der angegebenen Tabelle zurück.Standardmäßig ist i 1 und j ist die Länge von list, wie vom Längenbetreiber definiert.
Parameter
Rückgaben
xpcall
Diese Funktion ist ähnlich wie pcall(), außer dass du einen neuen Fehler-Handler festlegen kannst.
xpcall() ruft Funktion f im geschützten Modus auf, verwendet err als Fehlerbehandler und gibt eine Liste von Argumenten zurück.Jeder Fehler innerhalb von f wird nicht weitergegeben; stattdessen fängt xpcall() den Fehler ein, ruft die err Funktion mit dem ursprünglichen Objektauf und gibt einen Codeszurück.Sein erstes Ergebnis ist der Statuscode (ein boolescher Wert), der wahr ist, wenn der Anruf ohne Fehler erfolgreich ist.In diesem Fall gibt xpcall() auch alle Ergebnisse der Anrufe nach diesem ersten Ergebnis zurück.Im Falle eines Fehlers gibt xpcall() false plus das Ergebnis von err zurück.
Im Gegensatz zu pcall() bewahrt die err -Funktion die Stapelspur der Funktion f, die mit debug.info() oder debug.traceback() inspiziert werden kann.
Parameter
Rückgaben
Eigenschaften
_G
Eine Tabelle, die zwischen allen Skripten desselben Stufegeteilt wird.
_VERSION
Eine globale Variable (keine Funktion), die einen String enthält, der die aktuelle Interpreterversion enthält.