Luau globals

Visualizza obsoleti

*Questo contenuto è tradotto usando AI (Beta) e potrebbe contenere errori. Per visualizzare questa pagina in inglese, clicca qui.

Questo è un elenco di funzioni e variabili native a Luau.Queste funzioni possono essere utilizzate in un'installazione standard di entrambi Luau e Lua 5.1.4, anche se ci sono alcune differenze nel modo in cui alcuni di questi funzionano su Roblox.

Sommario

Funzioni

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

    Lancia un'errore se il fornito value risolve a false o nil .

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

    Interrompe l'esecuzione del thread e lancia un errore.

  • Restituisce la dimensione totale dell'heap di memoria in kilobyte.

  • getmetatable(t : Variant):Variant

    Restituisce il metatable della tabella data.

  • Restituisce una funzione iteratore e la tabella per l'uso in un ciclo while.

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

    Restituisce il codice fornito come funzione che può essere eseguita.

  • newproxy(addMetatable : boolean):userdata

    Crea un vuoto userdata, con l'opzione di avere un metatable.

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

    Una funzione iteratore da utilizzare nei cicli.

  • Restituisce una funzione iteratore e la tabella fornita per l'uso in un ciclo for .

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

    Esegue la funzione fornita e cattura qualsiasi errore che lancia, restituendo il successo della funzione e i suoi risultati.

  • print(params : Tuple):()

    Stampa tutti i valori forniti all'Output.

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

    Restituisce se v1 è uguale a v2 , bypassando i loro metodi metà.

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

    Ottiene il valore reale di table[index] , bypassando qualsiasi metodologia.

  • Restituisce la lunghezza della stringa o della tabella, bypassando qualsiasi metodologia.

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

    Imposta il valore reale di table[index] , bypassando qualsiasi metodologia.

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

    Restituisce il valore che è stato restituito dal ModuleScript dato, eseguendolo se non è stato ancora eseguito.

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

    Restituisce tutti gli argomenti dopo l'indice specificato.

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

    Imposta il metatable della tabella data.

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

    Restituisce il valore fornito convertito in un numero, o nil se impossibile.

  • tostring(e : Variant):string

    Restituisce il valore fornito convertito in una Stringa, o nil se impossibile.

  • type(v : Variant):string

    Restituisce il tipo di base dell'oggetto fornito.

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

    Restituisce tutti gli elementi dalla lista data come tupla.

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

    Simile a pcall() eccetto che utilizza un gestore di errori personalizzato.

Proprietà

  • Un tavolo che viene condiviso tra tutti gli script dello stesso Livellodi contesto.

  • Una variabile globale che contiene una stringa che contiene la versione attuale dell'interpretatore.

Funzioni

assert

Variant

Lancia un'errore se il fornito value è false o nil . Se l'affermazione passa, restituisce tutti i valori passati a essa.


local product = 90 * 4
assert(product == 360, "Oh dear, multiplication is broken")
-- The line above does nothing, because 90 times 4 is 360

Parametri

value: Variant

Il valore che verrà asserito contro.

errorMessage: string

Il testo che verrà mostrato nell'errore se l'affermazione fallisce.

Valore predefinito: assertion failed!

Restituzioni

Variant

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

message: Variant

Il messaggio di errore da visualizzare.

level: number

Il livello di informazioni che dovrebbe essere stampato. Predefinito a 1.

Valore predefinito: 1

Restituzioni

()

gcinfo

Restituisce la dimensione totale dell'heap di memoria in kilobyte.Il numero riflette il consumo attuale di heap dalla prospettiva del sistema operativo, che aumenta nel tempo mentre il raccoglitore di spazzatura libera gli oggetti.

Restituzioni

getmetatable

Variant

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

t: Variant

L'oggetto per recuperare il metatable di.

Restituzioni

Variant

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) do
print(index, fruit) --> 1 mele, 2 arance, 3 kiwi, ecc...
end

Parametri

Un tavolo il cui elementi devono essere iterati.

loadstring

Variant

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

contents: string

La stringa specificata da caricare come codice Luau.

chunkname: string

Un nome di segmento opzionale per i messaggi di errore e le informazioni di debug. Se non specificato, Luau utilizza la Stringacontents.

Restituzioni

Variant

newproxy

Crea un vuoto userdata, con l'opzione di avere un metatable.

Parametri

addMetatable: boolean
Valore predefinito: false

Restituzioni

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

Parametri

Un array o una tabella dizionario da iterare.

Restituzioni

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

func: function

La funzione da chiamare in modalità protetta.

args: Tuple

Gli argomenti da inviare a func quando si esegue.

Restituzioni

Variant

print

()

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

params: Tuple

Qualsiasi numero di argomenti da eseguire.

Restituzioni

()

rawequal

Verifica se v1 è uguale a v2 , senza invocare alcun metodo metametodo.

Parametri

v1: Variant

La prima variabile da confrontare.

v2: Variant

La seconda variabile da confrontare.

Restituzioni

rawget

Variant

Ottiene il valore reale di table[index] , senza invocare alcun metodo metametodo.

Parametri

La tabella da fare riferimento.

index: Variant

L'indice da ottenere da t .

Restituzioni

Variant

rawlen

Restituisce la lunghezza della stringa o della tabella, senza invocare alcun metodo metametodo.

Parametri

La tabella da fare riferimento.

Restituzioni

rawset

Imposta il valore reale di table[index] a un dato value, senza invocare alcun metodo metametodo.

Parametri

La tabella da fare riferimento.

index: Variant

L'indice da impostare in t a uno specifico value . Deve essere diverso da nil .

value: Variant

Il valore da impostare a uno specifico index in tabella t .

Restituzioni

require

Variant

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.Parent
require(script.Parent.ModuleScript)
require("./ModuleScript")
-- ../" è equivalente a script.Parent.Parent
require(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

Variant

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

index: Variant

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.

args: Tuple

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.

newMeta: Variant

Se nil , viene rimosso il metatable della tabella data t . Altrimenti, il metatable da impostare per la tabella data t .

Restituzioni

tonumber

Variant

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

Parametri

arg: Variant

L'oggetto da convertire in un numero.

base: number

La base numerica da convertire in arg .

Valore predefinito: 10

Restituzioni

Variant

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

e: Variant

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

v: Variant

L'oggetto per restituire il tipo di.

Restituzioni

unpack

Variant

Restituisce gli elementi dalla tabella data.Per impostazione predefinita, i è 1 e j è la lunghezza di list , come definito dall'operatore di lunghezza.

Parametri

list: table

L'elenco degli elementi da disporre.

L'indice del primo elemento da decodificare.

Valore predefinito: 1

L'indice dell'ultimo elemento da decodificare.

Valore predefinito: #list

Restituzioni

Variant

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

La funzione da chiamare in modalità protetta.

La funzione da utilizzare come gestore di errore se xpcall cattura un errore.

args: Tuple

Restituzioni

Variant

Proprietà

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.