Luau globals
*Ce contenu est traduit en utilisant l'IA (Beta) et peut contenir des erreurs. Pour consulter cette page en anglais, clique ici.
Résumé
Fonctions
Lance une erreur si le résolu fourni value se résout en false ou nil .
Arrête l'exécution du thread et lance une erreur.
Renvoie la taille totale de la pile de mémoire en kilo-octets.
Renvoie le métatable de la table donnée.
Retourne une fonction itératrice et la table à utiliser dans une boucle for.
Retourne le code fourni en tant que fonction qui peut être exécutée.
Crée un vide userdata , avec l'option d'avoir un métatable.
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.
Exécute la fonction fournie et capture toute erreur qu'elle renvoie, en retournant la réussite de la fonction et ses résultats.
Imprime toutes les valeurs fournies à la sortie.
Renvoie si v1 est égal à v2, en contournant leurs méthodes métaphores.
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.
Définit la valeur réelle de table[index], en contournant toute méthode métamatique.
Renvoie la valeur retournée par le ModuleScript donné, l'exécutant s'il n'a pas encore été exécuté.
Renvoie tous les arguments après l'index donné.
Définit le métatable de la table donnée.
Renvoie la valeur fournie convertie en nombre, ou nil si cela est impossible.
Renvoie la valeur fournie convertie en chaîne, ou nil si cela est impossible.
Renvoie le type de base de l'objet fourni.
Renvoie tous les éléments de la liste donnée en tant que tuple.
Semblable à pcall() excepté qu'il utilise un gestionnaire d'erreurs personnalisé.
Fonctions
assert
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 * 4assert(product == 360, "Oh dear, multiplication is broken")-- The line above does nothing, because 90 times 4 is 360
Paramètres
La valeur qui sera affirmée contre.
Le texte qui sera affiché dans l'erreur si l'assertion échoue.
Retours
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
Le message d'erreur à afficher.
Le niveau d'information qui devrait être imprimé. Par défaut à 1.
Retours
getmetatable
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
L'objet pour récupérer le metatable de.
Retours
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) doprint(index, fruit) --> 1 pommes, 2 oranges, 3 kiwi, etc...end
Paramètres
Une table dont les éléments doivent être itérés.
loadstring
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
Retours
next
Renvoie la première paire clé/valeur dans l'array.Si un argument lastKey était spécifié, il retourne ensuite l'élément suivant dans l'array en fonction de la clé fournie.L'ordre dans lequel les index sont énumérés n'est pas spécifié, même pour les index numériques.Pour parcourir une table dans l'ordre numérique, utilisez un for de nombre ou ipairs .
Le comportement du suivant est défini si, pendant la traversée, vous attribuez une valeur à un champ non existant dans la table.Vous pouvez cependant modifier les champs existants.En particulier, vous pouvez effacer les champs existants.
Paramètres
L'array à parcourir.
La dernière clé qui a été précédemment récupérée à partir d'un appel à suivant.
Retours
pairs
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) doprint(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
Retours
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
Nombre d'arguments à afficher.
Retours
rawget
Obtient la valeur réelle de table[index] , sans invoquer aucune méthode métamatique.
Paramètres
La table à référencer.
L'index pour obtenir de t .
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.
L'index à définir dans t à un value spécifié. Doit être différent de nil .
La valeur à définir à un index spécifié dans la table t .
Retours
require
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.Parentrequire("./MySibling")require((script.Parent).(MySibling))-- Le préfixe "../" est équivalent à script.Parent.Parentrequire("../SiblingOfMyParent")require((script.Parent.Parent).(SiblingOfMyParent))-- июня" peut être chaîné pour monter plusieurs niveauxrequire("../../SiblingOfMyGrandparent")require((script.Parent.Parent).(Parent).(SiblingOfMyGrandparent))-- le préfixe "@self" correspond au script lui-mêmerequire("@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
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 Cprint(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
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.
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.
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
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 erreurprint(assert(tonumber("roblox"))) --> Error: assertion failed
Paramètres
L'objet à convertir en nombre.
La base numérique à convertir arg en.
Retours
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
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
L'objet à retourner le type de.
Retours
unpack
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
Retours
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
Retours
Propriétés
_G
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.