Une variable est un nom qui contient une valeur. Les valeurs des variables peuvent être des nombres, des chaînes de caractères, des booléens, des types de données, et plus encore.
Nommer des variables
Les noms de variables peuvent être n'importe quelle chaîne de lettres, de chiffres et de traits de soulignement non réservée qui ne commence pas par un chiffre.
LETTERS -- valide
a1 -- valide
var_name -- valide
_test -- valide
if -- NON valide
25th -- NON valideLes noms de variables sont sensible à la casse, donc TestVar et TESTVAR sont des noms différents. Évitez de nommer des variables avec un trait de soulignement et toutes les lettres en majuscules, comme _VERSION, car Luau peut les réserver pour des variables globales internes.
Meilleures pratiques
Il est préférable d'épeler les mots complètement. Les abréviations rendent généralement le code plus facile à écrire, mais plus difficile à lire. Suivre des pratiques de nommage courantes lors de la nomination de vos variables peut vous aider, vous et les autres, à comprendre leur signification ou leur but :
- Utilisez des noms en PascalCase pour les objets de type classe et énumération.
- Utilisez des noms en PascalCase pour toutes les API Roblox. Les API en camelCase sont principalement obsolètes.
- Utilisez des noms en camelCase pour les variables locales, les valeurs membres et les fonctions.
- Ne mettez pas en majuscules des acronymes entiers dans les noms. Par exemple, écrivez aJsonVariable ou MakeHttpCall.
Noms réservés
Luau réserve les mots-clés suivants, donc vous ne pouvez pas les utiliser pour nommer des variables ou des fonctions :
- and
- for
- or
- break
- function
- repeat
- do
- if
- return
- else
- in
- then
- elseif
- local
- true
- end
- nil
- until
- false
- not
- while
Assigner des valeurs
Pour créer une variable et lui assigner une valeur, utilisez l'opérateur =. Mettez la variable à gauche du = et la valeur à droite. Si vous ne mettez pas de valeur, la valeur est nil.
Les variables peuvent avoir des portées globales ou locales. Elles ont une portée globale par défaut, mais il est presque toujours préférable de les créer avec une portée locale car Luau accède aux variables locales plus rapidement qu'aux variables globales. Pour donner à une variable une portée locale, mettez le mot-clé local avant le nom de la variable lorsque vous lui assignez une valeur. Pour lui donner une portée locale et également empêcher sa réaffectation, utilisez const au lieu de local. Pour plus d'informations, voir Portée.
local nilVar
local x = 10
local word = "Hello"
local boolean = true
print(nilVar) -- nil
print(x) -- 10
print(word) -- Hello
print(boolean) -- trueAssigner des valeurs à plusieurs variables
Vous pouvez assigner des valeurs à plusieurs variables en une seule ligne en séparant chaque paire variable-valeur par une virgule. Si vous avez plus de variables que de valeurs, alors Luau assigne nil aux variables supplémentaires. Si vous avez plus de valeurs que de variables, Luau n'assigne pas les valeurs supplémentaires à des variables.
local a, b, c = 1, 2, 3
local d, e, f = 4, 5 -- variable supplémentaire
local g, h = 7, 8, 9 -- valeur supplémentaire
print(a, b, c) -- 1, 2, 3
print(d, e, f) -- 4, 5, nil
print(g, h) -- 7, 8Changer des valeurs
Pour changer la valeur d'une variable, assignez-lui une autre valeur.
local x, y = 10, 20
print(x) -- 10
print(y) -- 20
x = 1000
y = 2000
print(x) -- 1000
print(y) -- 2000Variables const
Pour créer une variable que vous ne pouvez pas réaffecter, utilisez const au lieu de local. Essayer de réaffecter une variable const provoque une erreur, y compris via un opérateur d'affectation composé tel que +=.
const MAX_HEALTH = 100
MAX_HEALTH = 50 -- erreur : impossible de réaffecter une variable const
MAX_HEALTH += 1 -- erreur : impossible de réaffecter une variable constComme local, const accepte une annotation de type, telle que const MAX_HEALTH: number = 100.
Vous pouvez également déclarer une fonction avec const, ce qui empêche la réaffectation du nom de la fonction.
const function addOneAndTwo()
local result = 1 + 2
print(result)
end
addOneAndTwo = nil -- erreur : impossible de réaffecter une variable constconst rend la variable elle-même immuable, pas la valeur qu'elle contient. Si une variable const contient une table, vous pouvez toujours changer le contenu de la table. Pour rendre le contenu immuable également, utilisez table.freeze().
const SETTINGS = { volume = 0 }
SETTINGS.volume = 1 -- ok, change une valeur à l'intérieur de la table
SETTINGS = {} -- erreur : impossible de réaffecter une variable constContrairement aux mots-clés dans Noms réservés, const est contextuel. Luau ne le traite comme un mot-clé que là où local est valide, donc le code existant qui utilise const comme nom de variable fonctionne toujours.
local const = 1
print(const) -- 1
const = 2 -- ok, `const` est un nom de variable iciPour plus d'informations et des cas particuliers, voir la documentation Luau.