Luau globals

Afficher les obsolètes

*Ce contenu est traduit en utilisant l'IA (Beta) et peut contenir des erreurs. Pour consulter cette page en anglais, clique ici.

Ce qui suit est une liste de fonctions et de variables natives de Luau.Ces fonctions peuvent être utilisées dans une installation standard de Luau et Lua 5.1.4, bien que certaines différences existent sur la façon dont certaines d'entre elles fonctionnent sur Roblox.

Résumé

Fonctions

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

    Lance une erreur si le résolu fourni value se résout en false ou nil .

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

    Arrête l'exécution du thread et lance une erreur.

  • Renvoie la taille totale de la pile de mémoire en kilo-octets.

  • getmetatable(t : Variant):Variant

    Renvoie le métatable de la table donnée.

  • Retourne une fonction itératrice et la table à utiliser dans une boucle for.

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

    Retourne le code fourni en tant que fonction qui peut être exécutée.

  • newproxy(addMetatable : boolean):userdata

    Crée un vide userdata , avec l'option d'avoir un métatable.

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

    Une fonction itératrice à utiliser dans les boucles.

  • Retourne une fonction itératrice et la table fournie pour son utilisation dans une boucle for en boucle.

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

    Exécute la fonction fournie et capture toute erreur qu'elle renvoie, en retournant la réussite de la fonction et ses résultats.

  • print(params : Tuple):()

    Imprime toutes les valeurs fournies à la sortie.

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

    Renvoie si v1 est égal à v2, en contournant leurs méthodes métaphores.

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

    Obtient la valeur réelle de table[index], en contournant toute méthode métamatique.

  • Renvoie la longueur de la chaîne ou de la table, en contournant toute méthode métaméthode.

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

    Définit la valeur réelle de table[index], en contournant toute méthode métamatique.

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

    Renvoie la valeur retournée par le ModuleScript donné, l'exécutant s'il n'a pas encore été exécuté.

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

    Renvoie tous les arguments après l'index donné.

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

    Définit le métatable de la table donnée.

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

    Renvoie la valeur fournie convertie en nombre, ou nil si cela est impossible.

  • tostring(e : Variant):string

    Renvoie la valeur fournie convertie en chaîne, ou nil si cela est impossible.

  • type(v : Variant):string

    Renvoie le type de base de l'objet fourni.

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

    Renvoie tous les éléments de la liste donnée en tant que tuple.

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

    Semblable à pcall() excepté qu'il utilise un gestionnaire d'erreurs personnalisé.

Propriétés

  • Une table qui est partagée entre tous les scripts du même niveau de contexte.

  • Une variable globale qui contient une chaîne contenant la version actuelle de l'interprète.

Fonctions

assert

Variant

Lance une erreur si le value fourni est false ou nil . Si l'affirmation passe, il retourne toutes les valeurs qu'il a reçues.


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

Paramètres

value: Variant

La valeur qui sera affirmée contre.

errorMessage: string

Le texte qui sera affiché dans l'erreur si l'assertion échoue.

Valeur par défaut : assertion failed!

Retours

Variant

error

()

Termine la dernière fonction protégée appelée et produit message comme message d'erreur.Si la fonction contenant l'erreur n'est pas appelée dans une fonction protégée telle que pcall(), alors le script qui a appelé la fonction se terminera.La fonction d'erreur elle-même ne revient jamais et agit comme une erreur de script.

L'argument level spécifie comment obtenir la position de l'erreur.Avec le niveau 1 (la valeur par défaut), la position d'erreur est où la fonction d'erreur a été appelée.Le niveau 2 pointe l'erreur à l'endroit où la fonction qui a appelé l'erreur a été appelée, et ainsi de suite.Passer un niveau 0 évite l'ajout d'informations sur la position d'erreur au message.

Paramètres

message: Variant

Le message d'erreur à afficher.

level: number

Le niveau d'information qui devrait être imprimé. Par défaut à 1.

Valeur par défaut : 1

Retours

()

gcinfo

Renvoie la taille totale de la pile de mémoire en kilo-octets.Le nombre reflète la consommation actuelle de mémoire de la perspective du système d'exploitation, qui fluctue au fil du temps à mesure que le collecteur de déchets libère des objets.

Retours

getmetatable

Variant

Retourne le métatable de la table donnée t s'il en a un, sinon il renvoie nil .Si t a un métaméthode, et que la méthode __metatable est définie, il renvoie cette valeur à la place.


-- Démontrer getmetatable :
local meta = {}
local t = setmetatable({}, meta)
print(getmetatable(t) == meta) --> vrai
-- Rendre l'original métatable irrécupérable en définissant la méthode __metatable :
meta.__metatable = "protected"
print(getmetatable(t)) --> protected

Paramètres

t: Variant

L'objet pour récupérer le metatable de.

Retours

Variant

ipairs

Renvoie trois valeurs : une fonction itératrice, la table t et le nombre 0 .Chaque fois que la fonction itératrice est appelée, elle renvoie la paire d'index- valeur numérique suivante dans la table.Lorsqu'il est utilisé dans une boucle générique, les valeurs de retour peuvent être utilisées pour itérer sur chaque index numérique de la table :


local fruits = {"apples", "oranges", "kiwi"}
for index, fruit in ipairs(fruits) do
print(index, fruit) --> 1 pommes, 2 oranges, 3 kiwi, etc...
end

Paramètres

Une table dont les éléments doivent être itérés.

loadstring

Variant

Charge le code Luau à partir d'une chaîne et le retourne en tant que fonction.

Contrairement au Lua standard 5.1, Luau de Roblox ne peut pas charger le code binaire compilé en utilisant loadstring() .

loadstring() est désactivé par défaut. Pour obtenir des conseils sur l'activation, voir ServerScriptService .

AVERTISSEMENT : Cette méthode désactive certaines optimisations Luau sur la fonction retournée.Une extrême prudence doit être observée lors de l'utilisation de loadstring() ; si votre intention est d'autoriser les utilisateurs à exécuter du code dans votre expérience, assurez-vous de protéger l'environnement de la fonction retournée en utilisant getfenv() et setfenv() .

Paramètres

contents: string

La chaîne spécifiée à charger en tant que code Luau.

chunkname: string

Un nom de fragment facultatif pour les messages d'erreur et les informations de débogage. S'il n'est pas spécifié, Luau utilise la chaîne contents.

Retours

Variant

newproxy

Crée un vide userdata , avec l'option d'avoir un métatable.

Paramètres

addMetatable: boolean
Valeur par défaut : false

Retours

Retourne une fonction itératrice, la table passée t , et nil , afin que la construction itère sur tous les paires clé/valeur de cette table lorsqu'elle est utilisée dans une boucle générique for :


local scores = {
["John"] = 5,
["Sally"] = 10
}
for name, score in pairs(scores) do
print(name .. " has score: " .. score)
end

Paramètres

Une table d'array ou de dictionnaire à itérer.

pcall

Appelle la fonction func avec les arguments donnés en mode protégé.Cela signifie que toute erreur à l'intérieur de func n'est pas propagée ; au lieu de cela, pcall() capture l'erreur et renvoie un code d'état.Son premier résultat est le code d'état (un booléen), qui est vrai si l'appel réussit sans erreur.Dans un tel cas, pcall() retourne également tous les résultats de l'appel, après ce premier résultat.En cas d'erreur, pcall() retourne false plus le message d'erreur.


local function divideByFive(n: number): number
return n / 5
end
local success, errorMessage = pcall(divideByFive, "notANumber") -- Résultats en erreur...
if success then
-- Gérer la réponse réussie...
else
warn("Error message:", errorMessage)
end

Paramètres

func: function

La fonction à appeler en mode protégé.

args: Tuple

Les arguments à envoyer à func lors de l'exécution.

Retours

Variant

print

()

Reçoit n'importe quel nombre d'arguments et imprime leurs valeurs dans la sortie.print n'est pas destiné à une sortie formatée, mais seulement comme moyen rapide de montrer une valeur, généralement pour le débogage.Pour une sortie formatée, utilisez string.format() .Sur Roblox, print n'appelle pas tostring , mais la méthode métamatique __tostring se déclenche toujours si la table en a une.

Paramètres

params: Tuple

Nombre d'arguments à afficher.

Retours

()

rawequal

Vérifie si v1 est égal à v2 sans invoquer aucune méthode métamatique.

Paramètres

v1: Variant

La première variable à comparer.

v2: Variant

La deuxième variable à comparer.

Retours

rawget

Variant

Obtient la valeur réelle de table[index] , sans invoquer aucune méthode métamatique.

Paramètres

La table à référencer.

index: Variant

L'index pour obtenir de t .

Retours

Variant

rawlen

Renvoie la longueur de la chaîne ou de la table sans invoquer de méthodes métamiques.

Paramètres

La table à référencer.

Retours

rawset

Définit la valeur réelle de table[index] à une valeur donnée value, sans invoquer aucune méthode métamatique.

Paramètres

La table à référencer.

index: Variant

L'index à définir dans t à un value spécifié. Doit être différent de nil .

value: Variant

La valeur à définir à un index spécifié dans la table t .

Retours

require

Variant

Exécute le ModuleScript et renvoie ce que le ModuleScript (généralement une table ou une fonction).Si le ModuleScript n'a pas encore été exécuté, il sera exécuté.

Si un chemin de chaîne est fourni à la place, il est d'abord résolu en un ModuleScript relatif au script qui a appelé require() , imitant la sémantique Unix-like de l'expression Luau require().

Plus précisément, la sémantique de résolution de require-by-string est la suivante :

  • Les chemins avec le préfixe ./ commencent la résolution à script.Parent .
  • Les chemins avec le préfixe ../ commencent la résolution à script.Parent.Parent .
  • Les chemins avec le préfixe @self/ commencent la résolution à script .
  • Chaque composant non préfixe dans un chemin donné correspond à une instance enfante de la composante précédente.L'exception à cela est la composante .., qui correspond au parent de la composante précédente.
  • Si le ModuleScript désiré n'est pas présent au moment où require() est appelé, l'appel échouera et lancera une erreur.En d'autres termes, require-by-string est non bloquant : il ne s'attend pas implicitement à ce qu'un ModuleScript soit créé.

Pour illustrer cela, chaque paire d'expressions require() dans l'exemple ci-dessous contient deux appels fonctionnellement équivalents.Des parentèses redondantes ont été ajoutées pour préciser exactement comment chaque composant de chemin se mappe sur une instance.


-- Le préfixe "./" est équivalent à script.Parent
require("./MySibling")
require((script.Parent).(MySibling))
-- Le préfixe "../" est équivalent à script.Parent.Parent
require("../SiblingOfMyParent")
require((script.Parent.Parent).(SiblingOfMyParent))
-- июня" peut être chaîné pour monter plusieurs niveaux
require("../../SiblingOfMyGrandparent")
require((script.Parent.Parent).(Parent).(SiblingOfMyGrandparent))
-- le préfixe "@self" correspond au script lui-même
require("@self/MyChild")
require((script).(MyChild))

Une fois l'objet de retour créé par un appel initial require() de ModuleScript , les appels futurs require() pour le même ModuleScript (du même côté de la frontière client-serveur) ne s'exécuteront plus le code.Au lieu de cela, une référence au même objet de retour créé par l'appel initial require() sera fournie.Ce comportement permet le partage de valeurs à travers différents scripts, car plusieurs appels require() de différents scripts feront référence au même objet retourné.Si l'objet retourné est une table, toutes les valeurs stockées dans la table sont partagées et accessibles par tout script nécessitant que ModuleScript.

Comme noté ci-dessus, le comportement « partage d'objets » ne franchit pas la frontière client-serveur.Cela signifie que si un est accessible à la fois au client et au serveur (comme en étant placé dans ), et que est appelé à partir de aussi bien qu'un , le code dans le sera exécuté deux fois, et le recevra un objet de retour distinct de celui reçu par le .

Notez également que si le ModuleScript l'utilisateur veut exécuter a été téléchargé sur Roblox (avec le nom de l'instance étant MainModule ), il peut être chargé en utilisant la fonction require() sur l'ID de la ressource du ModuleScript, bien que seulement sur le serveur.

Paramètres

Le ModuleScript qui sera exécuté pour récupérer la valeur de retour qu'il fournit, ou une référence à un (un chemin de chaîne ou un ID de ressource).

Retours

Variant

Ce que le ModuleScript a renvoyé (généralement une table ou une fonction).

select

Retourne tous les arguments après le numéro d'argument index . S'il est négatif, il reviendra de la fin de la liste d'arguments.


print(select(2, "A", "B", "C")) --> B C
print(select(-1, "A", "B", "C")) --> C

Si l'argument index est défini sur "#", le nombre d'arguments qui ont été passés après son retour.


print(select("#", "A", "B", "C")) --> 3

Paramètres

index: Variant

L'index de l'argument à retourner tous les arguments après dans args .Si c'est réglé sur "#", le nombre d'arguments qui ont été passés après son retour.

args: Tuple

Un tuple d'arguments.

Retours

setmetatable

Définit le metatable pour la table donnée t à newMeta.Si newMeta est nil, la table de métadonnées de t est supprimée.Enfin, cette fonction renvoie la table t qui lui a été passée.Si a déjà un métatable dont la méthode > métaméthode est définie, l'appel de cette méthode souève une erreur.


local meta = {__metatable = "protected"}
local t = {}
setmetatable(t, meta) -- Cela définit le metatable de t
-- Nous avons maintenant une table, t, avec un métatable. Si nous essayons de le modifier...
setmetatable(t, {}) --> Error: cannot change a protected metatable

Paramètres

La table pour définir le metatable de.

newMeta: Variant

Si nil , le métatable de la table donnée t est supprimé. Sinon, le métatable à définir pour la table donnée t .

Retours

tonumber

Variant

Tentatives de convertir l'arg en un nombre avec une base spécifiée pour interpréter la valeur.Si elle ne peut pas être convertie, cette fonction renvoie nil .

La base peut être tout entier entre 2 et 36, inclus.Dans les bases au-dessus de 10, la lettre 'A' (en majuscule ou minuscule) représente 10, 'B' représente 11, et ainsi de suite, avec 'Z' représentant 35.En base 10 (la valeur par défaut), le nombre peut avoir une partie décimale ainsi qu'une partie exponentielle facultative.Dans d'autres bases, seuls les nombres entiers non signés sont acceptés.

Si une chaîne commence par 0x et qu'une base n'est pas fournie, la 0x est coupée et on suppose que la base est de 16, ou hexadécimale.


print(tonumber("1337")) --> 1337 (prétend la base 10, décimal)
print(tonumber("1.25")) --> 1.25 (base 10 peut avoir des proportions décimales)
print(tonumber("3e2")) --> 300 (la base 10 peut avoir une partie exponentielle, 3 × 10 ^ 2)
print(tonumber("25", 8)) --> 21 (base 8, octobre)
print(tonumber("0x100")) --> 256 (préfère la base 16, hexadécimale)
print(tonumber("roblox")) --> nil (ne soumet pas d'erreur)
-- Conseil : utilisez avec assert si vous souhaitez que des nombres non convertibles génèrent une erreur
print(assert(tonumber("roblox"))) --> Error: assertion failed

Paramètres

arg: Variant

L'objet à convertir en nombre.

base: number

La base numérique à convertir arg en.

Valeur par défaut : 10

Retours

Variant

tostring

Reçoit un argument de n'importe quel type et le convertit en chaîne dans un format raisonnable.Pour un contrôle complet de la manière dont les nombres sont convertis, utilisez string.format.Si le metatable de a une méthode métamatique, alors il sera appelé avec comme seul argument et retournera le résultat.


local isRobloxCool = true
-- Convertissez le booléen en chaîne puis concaténez :
print("Roblox is cool: " .. tostring(isRobloxCool)) --> Roblox is cool: true

Paramètres

e: Variant

L'objet à convertir en chaîne.

Retours

type

Renvoie le type de son seul argument, codé en tant que chaîne.Les résultats possibles de cette fonction sont "nil" (une chaîne, pas la valeur nil), "number" , "string" , "boolean" , "table" , "vector" , "function" , "thread" , "userdata" , et "buffer" .Les primitifs buffer et vector sont des ajouts de Luau, et non de Lua.

Paramètres

v: Variant

L'objet à retourner le type de.

Retours

unpack

Variant

Renvoie les éléments de la table donnée.Par défaut, i est 1 et j est la longueur de list , comme défini par l'opérateur de longueur.

Paramètres

list: table

La liste des éléments à déballer.

L'index du premier élément à déplier.

Valeur par défaut : 1

L'index de l'élément dernier à déplier.

Valeur par défaut : #list

Retours

Variant

xpcall

Cette fonction est similaire à pcall(), sauf que vous pouvez définir un nouveau gestionnaire d'erreurs.

xpcall() appelle la fonction f en mode protégé, en utilisant err comme gestionnaire d'erreurs, et passe une liste d'arguments.Toute erreur à l'intérieur de f n'est pas propagée ; au lieu de cela, xpcall() capture l'erreur, appelle la fonction err avec l'objet d'erreur original et renvoie un code d'état.Son premier résultat est le code d'état (un booléen), qui est vrai si l'appel réussit sans erreur.Dans ce cas, xpcall() retourne également tous les résultats de l'appel, après ce premier résultat.En cas d'erreur, xpcall() renvoie false plus le résultat de err.

Contrairement à pcall() , la fonction err préserve la trace de pile de la fonction f , qui peut être inspectée en utilisant debug.info() ou debug.traceback().

Paramètres

La fonction à appeler en mode protégé.

La fonction à utiliser comme poignée d'erreur si xpcall capture une erreur.

args: Tuple

Retours

Variant

Propriétés

Une table qui est partagée entre tous les scripts du même niveau de contexte.

_VERSION

Une variable globale (pas une fonction) qui contient une chaîne contenant la version actuelle de l'interprète.