Una variable es un nombre que contiene un valor. Los valores de las variables pueden ser números, cadenas, booleanos, tipos de datos, y más.
Nombres de variables
Los nombres de las variables pueden ser cualquier cadena de letras, dígitos y guiones bajos que no comience con un dígito y que no sea una palabra reservada.
LETTERS -- válido
a1 -- válido
var_name -- válido
_test -- válido
if -- NO válido
25th -- NO válidoLos nombres de las variables son sensibles a mayúsculas y minúsculas, por lo que TestVar y TESTVAR son nombres diferentes. Evita nombrar variables con un guion bajo y todas las letras en mayúsculas, como _VERSION, porque Luau puede reservarlas para variables globales internas.
Mejores prácticas
Es una buena práctica escribir las palabras completamente. Las abreviaturas generalmente hacen que el código sea más fácil de escribir, pero más difícil de leer. Seguir prácticas comunes de nomenclatura al nombrar tus variables puede ayudar a ti y a otros a entender su significado o propósito:
- Usa nombres en PascalCase para objetos de clase y similares a enumeraciones.
- Usa nombres en PascalCase para todas las APIs de Roblox. Las APIs en camelCase están mayormente en desuso.
- Usa nombres en camelCase para variables locales, valores de miembros y funciones.
- No capitalices acrónimos completos dentro de los nombres. Por ejemplo, escribe aJsonVariable o MakeHttpCall.
Nombres reservados
Luau reserva las siguientes palabras clave, por lo que no puedes usarlas para nombrar variables o funciones:
- and
- for
- or
- break
- function
- repeat
- do
- if
- return
- else
- in
- then
- elseif
- local
- true
- end
- nil
- until
- false
- not
- while
Asignar valores
Para crear una variable y asignarle un valor, usa el operador =. Coloca la variable a la izquierda del = y el valor a la derecha. Si no pones un valor, el valor es nil.
Las variables pueden tener alcances globales o locales. Tienen alcance global por defecto, pero casi siempre es mejor crearlas con alcance local porque Luau accede a las variables locales más rápido que a las globales. Para dar a una variable un alcance local, coloca la palabra clave local antes del nombre de la variable cuando le asignes un valor. Para darle un alcance local y también evitar reasignarla, usa const en lugar de local. Para más información, consulta Alcance.
local nilVar
local x = 10
local word = "Hola"
local boolean = true
print(nilVar) -- nil
print(x) -- 10
print(word) -- Hola
print(boolean) -- trueAsignar valores a múltiples variables
Puedes asignar valores a múltiples variables en una línea separando cada par variable-valor con una coma. Si tienes más variables que valores, entonces Luau asigna nil a las variables adicionales. Si tienes más valores que variables, Luau no asigna los valores adicionales a ninguna variable.
local a, b, c = 1, 2, 3
local d, e, f = 4, 5 -- variable extra
local g, h = 7, 8, 9 -- valor extra
print(a, b, c) -- 1, 2, 3
print(d, e, f) -- 4, 5, nil
print(g, h) -- 7, 8Cambiar valores
Para cambiar el valor de una variable, asigna otro valor a ella.
local x, y = 10, 20
print(x) -- 10
print(y) -- 20
x = 1000
y = 2000
print(x) -- 1000
print(y) -- 2000Variables const
Para crear una variable que no puedes reasignar, usa const en lugar de local. Intentar reasignar una variable const causa un error, incluso a través de un operador de asignación compuesta como +=.
const MAX_HEALTH = 100
MAX_HEALTH = 50 -- error: no se puede reasignar una variable const
MAX_HEALTH += 1 -- error: no se puede reasignar una variable constAl igual que local, const acepta una anotación de tipo, como const MAX_HEALTH: number = 100.
También puedes declarar una función con const, lo que evita la reasignación del nombre de la función.
const function addOneAndTwo()
local result = 1 + 2
print(result)
end
addOneAndTwo = nil -- error: no se puede reasignar una variable constconst hace que la variable en sí sea inmutable, no el valor que contiene. Si una variable const contiene una tabla, aún puedes cambiar el contenido de la tabla. Para hacer que el contenido también sea inmutable, usa table.freeze().
const SETTINGS = { volume = 0 }
SETTINGS.volume = 1 -- ok, cambia un valor dentro de la tabla
SETTINGS = {} -- error: no se puede reasignar una variable constA diferencia de las palabras clave en Nombres reservados, const es contextual. Luau solo lo trata como una palabra clave donde local es válido, por lo que el código existente que usa const como nombre de variable sigue funcionando.
local const = 1
print(const) -- 1
const = 2 -- ok, `const` es un nombre de variable aquíPara más información y casos extremos, consulta la documentación de Luau.