Luau globals
*Questo contenuto è tradotto usando AI (Beta) e potrebbe contenere errori. Per visualizzare questa pagina in inglese, clicca qui.
Sommario
Funzioni
Lancia un'errore se il fornito value risolve a false o nil .
Interrompe l'esecuzione del thread e lancia un errore.
Restituisce la dimensione totale dell'heap di memoria in kilobyte.
Restituisce il metatable della tabella data.
Restituisce una funzione iteratore e la tabella per l'uso in un ciclo while.
Restituisce il codice fornito come funzione che può essere eseguita.
Crea un vuoto userdata, con l'opzione di avere un metatable.
Una funzione iteratore da utilizzare nei cicli.
Restituisce una funzione iteratore e la tabella fornita per l'uso in un ciclo for .
Esegue la funzione fornita e cattura qualsiasi errore che lancia, restituendo il successo della funzione e i suoi risultati.
Stampa tutti i valori forniti all'Output.
Restituisce se v1 è uguale a v2 , bypassando i loro metodi metà.
Ottiene il valore reale di table[index] , bypassando qualsiasi metodologia.
Restituisce la lunghezza della stringa o della tabella, bypassando qualsiasi metodologia.
Imposta il valore reale di table[index] , bypassando qualsiasi metodologia.
Restituisce il valore che è stato restituito dal ModuleScript dato, eseguendolo se non è stato ancora eseguito.
Restituisce tutti gli argomenti dopo l'indice specificato.
Imposta il metatable della tabella data.
Restituisce il valore fornito convertito in un numero, o nil se impossibile.
Restituisce il valore fornito convertito in una Stringa, o nil se impossibile.
Restituisce il tipo di base dell'oggetto fornito.
Restituisce tutti gli elementi dalla lista data come tupla.
Simile a pcall() eccetto che utilizza un gestore di errori personalizzato.
Funzioni
assert
Lancia un'errore se il fornito value è false o nil . Se l'affermazione passa, restituisce tutti i valori passati a essa.
local product = 90 * 4assert(product == 360, "Oh dear, multiplication is broken")-- The line above does nothing, because 90 times 4 is 360
Parametri
Il valore che verrà asserito contro.
Il testo che verrà mostrato nell'errore se l'affermazione fallisce.
Restituzioni
error
Termina l'ultima funzione protetta chiamata e produce message come Messaggiodi errore.Se la funzione che contiene l'errore non viene chiamata in una funzione protetta come pcall(), allora lo script che ha chiamato la funzione Terminare.La funzione di errore in sé non viene mai restituita e agisce come un errore di script.
L'argomento level specifica come ottenere la posizione dell'errore.Con il livello 1 (il predefinito), la posizione dell'errore è dove è stata chiamata la funzione di errore.Il livello 2 indica l'errore dove è stata chiamata la funzione che ha causato l'errore; e così via.Passare un livello 0 evita l'aggiunta di informazioni sulla posizione dell'errore al Messaggio.
Parametri
Il messaggio di errore da visualizzare.
Il livello di informazioni che dovrebbe essere stampato. Predefinito a 1.
Restituzioni
getmetatable
Restituisce il metatable della tabella data t se ne ha uno, altrimenti restituisce nil .Se t ha un metatable, e il metametodo __metatable è Impostare, restituisce quel valore invece.
-- Dimostrare getmetatable:local meta = {}local t = setmetatable({}, meta)print(getmetatable(t) == meta) --> vero-- Rendi il metatable originale irrecuprabile impostando il metametodo __metatable:meta.__metatable = "protected"print(getmetatable(t)) --> protected
Parametri
L'oggetto per recuperare il metatable di.
Restituzioni
ipairs
Restituisce tre valori: una funzione iteratore, la tabella t e il numero 0 .Ogni volta che viene chiamata la funzione iteratore, restituisce il prossimo paio di valori numerici nell'indice nella tabella.Quando viene utilizzato in un ciclo for generico, i valori di restituzione possono essere utilizzati per itterare su ciascun indice numerico nella tabella:
local fruits = {"apples", "oranges", "kiwi"}for index, fruit in ipairs(fruits) doprint(index, fruit) --> 1 mele, 2 arance, 3 kiwi, ecc...end
Parametri
Un tavolo il cui elementi devono essere iterati.
loadstring
Carica il codice Luau da una stringa e lo restituisce come funzione.
A differenza del Lua standard 5.1, Luau di Roblox non può caricare il bytecode compilato utilizzando loadstring() .
loadstring() è disabilitato per impostazione predefinita. Per indicazioni su come abilitarlo, vedi ServerScriptService .
AVVERTIMENTO: Questo metodo disabilita alcune ottimizzazioni Luau sul funzionale restituito.Si deve fare estrema attenzione quando si usa loadstring() ; se la tua intenzione è consentire agli utenti di eseguire il codice nella tua esperienza, assicurati di proteggere l'ambiente della funzione restituita usando getfenv() e setfenv() .
Parametri
Restituzioni
next
Restituisce il primo paio di chiave/valore nell'vettore.Se un argomento lastKey è stato specificato, restituisce l'elemento successivo nell'array in base alla chiave fornita.Non viene specificata l'ordine in cui gli indici vengono elencati, anche per gli indici numerici.Per attraversare una tabella in ordine numerico, usa un for loop numerico o ipairs .
Il comportamento del prossimo è definito se, durante la traversal, assegni qualsiasi valore a un campo non esistente nella tabella.Puoi, tuttavia, modificare i campi esistenti.In particolare, puoi cancellare i campi esistenti.
Parametri
L'array da percorrere.
L'ultima chiave che è stata precedentemente recuperata da una chiamata a successiva.
Restituzioni
pairs
Restituisce una funzione iteratore, il tavolo passato t , e nil , in modo che la costruzione iteri su tutti i paari chiave/valore di quel tavolo quando viene utilizzata in un ciclo generico for :
local scores = {["John"] = 5,["Sally"] = 10}for name, score in pairs(scores) doprint(name .. " has score: " .. score)end
Parametri
Un array o una tabella dizionario da iterare.
pcall
Chiama la funzione func con gli argomenti forniti in modalità protetta.Questo significa che qualsiasi errore all'interno di func non viene propagato; invece, pcall() cattura l'errore e restituisce un codice di stato.Il suo primo risultato è il codice di stato (un booleano), che è vero se la chiamata ha successo senza errori.In tal caso, pcall() restituisce anche tutti i risultati della chiamata, dopo questo primo Risultato.In caso di qualsiasi errore, pcall() restituisce false più il Messaggiodi errore.
Parametri
Restituzioni
Riceve qualsiasi numero di argomenti e stampa i loro valori nell'Output.print non è destinato all'Outputformattato, ma solo come modo rapido per mostrare un valore, tipicamente per la debugazione.Per un Outputformattato, usa string.format() .Su Roblox, print non chiama tostring , ma il metodo __tostring ancora si attiva se la tabella ne ha uno.
Parametri
Qualsiasi numero di argomenti da eseguire.
Restituzioni
rawget
Ottiene il valore reale di table[index] , senza invocare alcun metodo metametodo.
Parametri
La tabella da fare riferimento.
L'indice da ottenere da t .
Restituzioni
rawset
Imposta il valore reale di table[index] a un dato value, senza invocare alcun metodo metametodo.
Parametri
La tabella da fare riferimento.
L'indice da impostare in t a uno specifico value . Deve essere diverso da nil .
Il valore da impostare a uno specifico index in tabella t .
Restituzioni
require
Esegue il fornito ModuleScript e restituisce ciò che il ModuleScript ha restituito (solitamente una tabella o una funzione).Se il ModuleScript non è stato ancora eseguito, verrà eseguito.
Se viene fornito un percorso di stringa invece, viene prima risolto a un ModuleScript relativo allo script che ha chiamato require(), imitando la semantica Unix-like dell'espressione Luau require().Ad esempio, ogni coppia di require() espressioni nell'esempio seguente contiene due chiamate funzionalmente equivalenti.
-- "./" è equivalente a script.Parentrequire(script.Parent.ModuleScript)require("./ModuleScript")-- ../" è equivalente a script.Parent.Parentrequire(script.Parent.Parent.ModuleScript)require("../ModuleScript")
In particolare, la semantica della risoluzione di require-by-string è la seguente:
- I percorsi di stringa devono iniziare con ./ o ../ , dove ./ è equivalente a script.Parent e ../ è equivalente a script.Parent.Parent .
- Se il percorso risolto punta a un Instance che non è un ModuleScript , require() cercherà di trovare un ModuleScript chiamato Init o init genitori a quello Instance e lo userà invece, se esiste.
- Se il desiderato ModuleScript non è presente al momento in cui viene chiamata require(), la chiamata fallirà e lancierà un'errore.In altre parole, require-by-string è non bloccante: non attende implicitamente la creazione di un ModuleScript per essere creato.
Una volta creato l'oggetto di restituzione da una chiamata iniziale **** require() di un ModuleScript , le chiamate future require() per lo stesso ModuleScript (sullo stesso lato del confine client-server) non eseguiranno più il codice.Invece, verrà fornito un riferimento allo stesso oggetto di restituzione creato dalla chiamata iniziale .Questo comportamento consente la condivisione di valori attraverso diversi script, poiché più chiamate require() da diversi script faranno riferimento allo stesso oggetto restituito.Se l'oggetto restituito è una tabella, tutti i valori memorizzati all'interno della tabella sono condivisi e accessibili da qualsiasi script che richieda ModuleScript .
Come notato sopra, il comportamento "condivisione oggetti" non supera il confine client-server.Questo significa che se un ModuleScript è accessibile sia al client e server (come posizionandolo in ReplicatedStorage ) e require() è chiamato da entrambi un LocalScript e un Script , il codice nel ModuleScript verrà eseguito due volte, e il LocalScript riceverà un oggetto di ritorno distinto da quello ricevuto dal Script .
Si noti inoltre che se il ModuleScript l'utente vuole eseguire è stato caricato su Roblox (con il nome dell'esempioche è MainModule ), può essere caricato utilizzando la funzione require() sulla ID dell'asset del ModuleScript , anche se solo sul Server.
Parametri
Il ModuleScript che verrà eseguito per recuperare il valore di restituzione che fornisce, o un riferimento a uno (una stringa di percorso o un ID risorsa).
Restituzioni
Cosa è stato restituito dal ModuleScript (solitamente una tabella o una funzione).
select
Restituisce tutti gli argomenti dopo l'argomento numero index . Se negativo, restituirà dalla fine dell'elenco degli argomenti.
print(select(2, "A", "B", "C")) --> B Cprint(select(-1, "A", "B", "C")) --> C
Se l'argomento index è impostato su "#", il numero di argomenti che sono stati passati dopo il suo ritorno.
print(select("#", "A", "B", "C")) --> 3
Parametri
L'indice dell'argomento da restituire tutti gli argomenti dopo in args .Se è impostato su "#" , il numero di argomenti che sono stati passati dopo il suo ritorno.
Un tuple di argomenti.
Restituzioni
setmetatable
Imposta il metatable per la tabella data t a newMeta.Se newMeta è nil , il metatable di t viene rimosso.Infine, questa funzione restituisce la tabella t che le è stata passata.Se > già ha un metatable il cui metodo > è Impostare, chiamare questo solleva un errore.
local meta = {__metatable = "protected"}local t = {}setmetatable(t, meta) -- Questo imposta il metatable di t-- Ora abbiamo un tavolo, t, con un metatable. Se proviamo a cambiarlo...setmetatable(t, {}) --> Error: cannot change a protected metatable
Parametri
La tabella per impostare il metatable di.
Se nil , viene rimosso il metatable della tabella data t . Altrimenti, il metatable da impostare per la tabella data t .
Restituzioni
tonumber
Tentativi di convertire l'arg in un numero con una base specificata per interpretare il valore in esso.Se non può essere convertito, questa funzione restituisce nil .
La base può essere qualsiasi intero tra 2 e 36, inclusi.Nelle basi superiori a 10, la lettera 'A' (in maiuscolo o minuscolo) rappresenta 10, 'B' rappresenta 11, e così via, con 'Z' che rappresenta 35.In base 10 (il predefinito), il numero può avere una parte decimale, oltre a una parte esponenziale opzionale.In altre basi, vengono accettati solo gli interi non firmati.
Se una stringa inizia con 0x e una base non viene fornita, la 0x viene tagliata e si presume che la base sia 16, o decimale.
print(tonumber("1337")) --> 1337 (assume base 10, decimale)print(tonumber("1.25")) --> 1.25 (base 10 può avere porzioni decimali)print(tonumber("3e2")) --> 300 (base 10 può avere una porzione esponenziale, 3 × 10 ^ 2)print(tonumber("25", 8)) --> 21 (base 8, ottale)print(tonumber("0x100")) --> 256 (assume base 16, esadecimale)print(tonumber("roblox")) --> nil (non solleva un errore)-- Suggerimento: usa con assert se desideri numeri non convertibili per sollevare un erroreprint(assert(tonumber("roblox"))) --> Error: assertion failed
Parametri
L'oggetto da convertire in un numero.
La base numerica da convertire in arg .
Restituzioni
tostring
Riceve un argomento di qualsiasi tipo e lo converte in una stringa in un formato ragionevole.Per il controllo completo di come i numeri vengono convertiti, usa Stringa.format.Se il metatable di e ha un metametodo __tostring, allora verrà chiamato con e come unico argomento e restituirà il Risultato.
local isRobloxCool = true-- Converti il booleano in una stringa quindi concatena:print("Roblox is cool: " .. tostring(isRobloxCool)) --> Roblox is cool: true
Parametri
L'oggetto da convertire in una Stringa.
Restituzioni
type
Restituisce il tipo del suo unico argomento, codificato come una Stringa.I possibili risultati di questa funzione sono "nil" (una Stringa, non il valore nil), "number" , "string" , "boolean" , "table" , "vector" , "function" , "thread" , "userdata" , e "buffer" .I primitivi buffer e vector sono aggiunte da Luau, non da Lua.
Parametri
L'oggetto per restituire il tipo di.
Restituzioni
unpack
Restituisce gli elementi dalla tabella data.Per impostazione predefinita, i è 1 e j è la lunghezza di list , come definito dall'operatore di lunghezza.
Parametri
Restituzioni
xpcall
Questa funzione è simile a pcall(), tranne che puoi impostare un nuovo gestore di errori.
xpcall() chiama la funzione f in modalità protetta, utilizzando err come gestore degli errori e passa una lista di argomenti.Qualunque errore all'interno di f non viene propagato; invece, xpcall() cattura l'errore, chiama la funzione err con l'oggetto di errore originale e restituisce un codice di stato.Il suo primo risultato è il codice di stato (un booleano), che è vero se la chiamata ha successo senza errori.In questo caso, xpcall() restituisce anche tutti i risultati della chiamata, dopo questo primo Risultato.In caso di errore, xpcall() restituisce false più il risultato da err.
A differenza di pcall() , la funzione err preserva la traccia della stack della funzione f, che può essere ispezionata utilizzando debug.info() o debug.traceback() .
Parametri
Restituzioni
Proprietà
_G
Un tavolo che viene condiviso tra tutti gli script dello stesso Livellodi contesto.
_VERSION
Una variabile globale (non una funzione) che contiene una stringa che contiene la versione attuale dell'interpretatore.