Luau globals

Veraltete anzeigen

*Dieser Inhalt wurde mit KI (Beta) übersetzt und kann Fehler enthalten. Um diese Seite auf Englisch zu sehen, klicke hier.

Das Folgende ist eine Liste von Funktionen und Variablen, die für Luau nativ sind.Diese Funktionen können in einer Standardinstallation von sowohl Luau als auch Lua 5.1.4 verwendet werden, obwohl es einige Unterschiede in der Art und Weise gibt, wie einige davon auf Roblox funktionieren.

Zusammenfassung

Funktionen

  • assert(value : Variant,errorMessage : string):Variant

    Wirft einen Fehler, wenn die bereitgestellte value auf false oder nil zurückgelöst wird.

  • error(message : Variant,level : number):()

    Stoppt die Thread-Ausführung und wirft einen Fehler.

  • Gibt die Gesamtgröße des Speicher堆s in Kilobyte zurück.

  • getmetatable(t : Variant):Variant

    Gibt die metatable des angegebenen Tisches zurück.

  • Gibt eine Iterationsfunktion und die Tabelle für die Verwendung in einem for-Schleife zurück.

  • loadstring(contents : string,chunkname : string):Variant

    Gibt den bereitgestellten Code als Funktion zurück, die ausgeführt werden kann.

  • newproxy(addMetatable : boolean):userdata

    Erstellt eine leere userdata, mit der Option, dass es ein Metatable hat.

  • next(t : table,lastKey : Variant):Variant,Variant

    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.

  • pcall(func : function,args : Tuple):boolean,Variant

    Führt die bereitgestellte Funktion aus und fängt jeden Fehler, den sie wirft, und gibt die Erfolge und Ergebnisse der Funktion zurück.

  • print(params : Tuple):()

    Druckt alle bereitgestellten Werte auf die Ausgabe.

  • rawequal(v1 : Variant,v2 : Variant):boolean

    Gibt zurück, ob v1 gleich v2 ist, indem ihre Metamethoden umgangen werden.

  • rawget(t : table,index : Variant):Variant

    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.

  • rawset(t : table,index : Variant,value : Variant):table

    Setzt den tatsächlichen Wert von table[index], indem es alle Metamethoden umgeht.

  • require(module : ModuleScript | string | number):Variant

    Gibt den Wert zurück, der vom angegebenen Modulskript zurückgegeben wurde, und führt ihn aus, wenn er noch nicht ausgeführt wurde.

  • select(index : Variant,args : Tuple):Tuple

    Gibt alle Argumente nach dem angegebenen Index zurück.

  • setmetatable(t : table,newMeta : Variant):table

    Legt das Metatable des angegebenen Tisches fest.

  • tonumber(arg : Variant,base : number):Variant

    Gibt den angegebenen Wert in eine Zahl umgewandelt zurück oder nil, wenn es unmöglich ist.

  • tostring(e : Variant):string

    Gibt den angegebenen Wert in einen String umgewandelt zurück oder nil wenn er unmöglich ist.

  • type(v : Variant):string

    Gibt den grundlegenden Typ des bereitgestellten Objekts zurück.

  • unpack(list : table,i : number,j : number):Variant

    Gibt alle Elemente aus der angegebenen Liste als Tupelzurück.

  • xpcall(f : function,err : function,args : Tuple):boolean,Variant

    Ähnlich wie pcall(), außer dass es einen benutzerdefinierten Fehler处理器 verwendet.

Eigenschaften

  • Eine Tabelle, die zwischen allen Skripten desselben Stufegeteilt wird.

  • Eine globale Variable, die einen String enthält, der die aktuelle Interpreterversion enthält.

Funktionen

assert

Variant

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 * 4
assert(product == 360, "Oh dear, multiplication is broken")
-- The line above does nothing, because 90 times 4 is 360

Parameter

value: Variant

Der Wert, der gegen geltend gemacht werden wird.

errorMessage: string

Der Text, der im Fehler angezeigt wird, wenn die Aussage fehlschlägt.

Standardwert: assertion failed!

Rückgaben

Variant

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

message: Variant

Die Fehlermeldung zum Anzeigen.

level: number

Das Ausmaß der Informationen, die gedruckt werden sollen. Standard ist 1.

Standardwert: 1

Rückgaben

()

gcinfo

Gibt die Gesamtgröße des Speicher堆s in Kilobyte zurück.Die Zahl spiegelt den aktuellen Heckverbrauch aus der Perspektive des Betriebssystems wider, der im Laufe der Zeit schwankt, wenn der Garbage-Collector Objekte freigibt.

Rückgaben

getmetatable

Variant

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

t: Variant

Das Objekt, um die Metatable abzurufen.

Rückgaben

Variant

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) do
print(index, fruit) --> 1 äpfel, 2 orangen, 3 kiwi usw.
end

Parameter

Eine Tabelle, deren Elemente durchlaufen werden sollen.

loadstring

Variant

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

contents: string

Der angegebene String, der als Codesgeladen werden soll.

chunkname: string

Ein optioneller Fehlernamen für Fehlerinformationen und Fehlerdiagnose. Wenn nicht spezifiziert, verwendet Luau die contents String.

Rückgaben

Variant

newproxy

Erstellt eine leere userdata, mit der Option, dass es ein Metatable hat.

Parameter

addMetatable: boolean
Standardwert: false

Rückgaben

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) do
print(name .. " has score: " .. score)
end

Parameter

Eine Array- oder Dictionär-Tabelle, die durchlaufen wird.

Rückgaben

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

func: function

Die Funktion, die im geschützten Modus aufgerufen wird.

args: Tuple

Die Argumente, die zum Senden an func beim Ausführen gesendet werden.

Rückgaben

Variant

print

()

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

params: Tuple

Jede Anzahl von Argumenten, die ausgegeben werden sollen.

Rückgaben

()

rawequal

Überprüft, ob v1 gleich v2 ist, ohne irgendeine Metamethode aufzurufen.

Parameter

v1: Variant

Die erste Variable zum Vergleich.

v2: Variant

Die zweite Variable zum Vergleich.

Rückgaben

rawget

Variant

Holt den tatsächlichen Wert von table[index] , ohne irgendeine Metamethode aufzurufen.

Parameter

Die Tabelle, die referenziert werden soll.

index: Variant

Der Index, von dem man abkommt t.

Rückgaben

Variant

rawlen

Gibt die Länge der Zeichenkette oder des Tabells zurück, ohne Metamethoden aufzurufen.

Parameter

Die Tabelle, die referenziert werden soll.

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.

index: Variant

Der Index, der in t festgelegt werden muss, auf einen bestimmten value . Muss sich von nil unterscheiden.

value: Variant

Der Wert, der auf einen bestimmten index in der Tabelle t gesetzt werden soll.

Rückgaben

require

Variant

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.Parent
require(script.Parent.ModuleScript)
require("./ModuleScript")
-- /"..." ist gleich Skript, das. PL: die Skripts.Parent.Parent
require(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

Variant

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 C
print(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

index: Variant

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.

args: Tuple

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.

newMeta: Variant

Wenn nil , wird das Metatable der angegebenen Tabelle t entfernt. Andernfalls wird das Metatable für die angegebene Tabelle t festgelegt.

Rückgaben

tonumber

Variant

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 erheben
print(assert(tonumber("roblox"))) --> Error: assertion failed

Parameter

arg: Variant

Das Objekt, das in eine Zahl umgewandelt werden soll.

base: number

Die numerische Basis, um arg in zu konvertieren.

Standardwert: 10

Rückgaben

Variant

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

e: Variant

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

v: Variant

Das Objekt, das die Art zurückgibt.

Rückgaben

unpack

Variant

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

list: table

Die Liste der Elemente, die entpackt werden sollen.

Der Index des ersten Elements zum Entpacken.

Standardwert: 1

Der Index des letzten Elements zum Entpacken.

Standardwert: #list

Rückgaben

Variant

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

Die Funktion, die im geschützten Modus aufgerufen wird.

Die Funktion, die als Fehlergriff verwendet wird, wenn xpcall einen Fehler erkennt.

args: Tuple

Rückgaben

Variant

Eigenschaften

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.