变量

*此内容使用人工智能(Beta)翻译,可能包含错误。若要查看英文页面,请点按 此处

一个 变量 是一个持有值的名称。变量值可以是 数字字符串布尔值数据类型 等等。

命名变量

变量名称可以是任何非保留的字母、数字和下划线的字符串,且不能以数字开头。

LETTERS -- 有效
a1 -- 有效
var_name -- 有效
_test -- 有效
if -- 无效
25th -- 无效

变量名称是 区分大小写 的,因此 TestVarTESTVAR 是不同的名称。避免使用下划线和全大写字母命名变量,例如 _VERSION,因为 Luau 可能会将其保留为内部全局变量。

最佳实践

最佳实践是完整拼写单词。缩写通常使代码更容易编写,但更难阅读。遵循常见的命名惯例可以帮助你和其他人理解变量的含义或目的:

  • 对于类和枚举类对象,使用 PascalCase 命名。
  • 对于所有 Roblox API,使用 PascalCase 命名。camelCase API 大多已被弃用。
  • 对于局部变量、成员值和 函数,使用 camelCase 命名。
  • 对于常量,例如 const 值或其他你不期望 更改 的值,使用 LOUD_SNAKE_CASE 命名。
  • 不要在名称中全大写缩略词。例如,写 aJsonVariableMakeHttpCall

保留名称

Luau 保留以下关键字,因此你不能用它们来命名变量或 函数

  • and
  • for
  • or
  • break
  • function
  • repeat
  • do
  • if
  • return
  • else
  • in
  • then
  • elseif
  • local
  • true
  • end
  • nil
  • until
  • false
  • not
  • while

赋值

要创建一个变量并为其赋值,使用 = 运算符。将变量放在 = 的左侧,值放在右侧。如果不放值,则值为 nil

变量可以具有 全局局部 作用域。默认情况下,它们具有全局作用域,但几乎总是更好地使用局部作用域,因为 Luau 访问局部变量的速度比全局变量快。要给变量局部作用域,在为其赋值时在变量名称前放置关键字 local。要给它局部作用域并防止重新赋值,使用 const 而不是 local。有关更多信息,请参见 作用域

local nilVar
local x = 10
local word = "Hello"
local boolean = true
print(nilVar) -- nil
print(x) -- 10
print(word) -- Hello
print(boolean) -- true

为多个变量赋值

你可以通过用逗号分隔每个变量-值对,在一行中为多个变量赋值。如果变量比值多,则 Luau 会将额外的变量赋值为 nil。如果值比变量多,Luau 不会将额外的值赋给任何变量。

local a, b, c = 1, 2, 3
local d, e, f = 4, 5 -- 额外变量
local g, h = 7, 8, 9 -- 额外值
print(a, b, c) -- 1, 2, 3
print(d, e, f) -- 4, 5, nil
print(g, h) -- 7, 8

更改值

要更改变量的值,给它赋另一个值。

local x, y = 10, 20
print(x) -- 10
print(y) -- 20
x = 1000
y = 2000
print(x) -- 1000
print(y) -- 2000

常量变量

要创建一个不能重新赋值的变量,使用 const 而不是 local。尝试重新赋值 const 变量会导致错误,包括通过 复合赋值运算符 例如 +=

const MAX_HEALTH = 100
MAX_HEALTH = 50 -- 错误:无法重新赋值常量变量
MAX_HEALTH += 1 -- 错误:无法重新赋值常量变量

local 一样,const 接受 类型注解,例如 const MAX_HEALTH: number = 100

你还可以用 const 声明一个函数,这样可以防止重新赋值函数的名称。

const function addOneAndTwo()
local result = 1 + 2
print(result)
end
addOneAndTwo = nil -- 错误:无法重新赋值常量变量

const 使变量本身不可变,而不是它所持有的值。如果一个 const 变量持有一个 ,你仍然可以更改表的内容。要使内容也不可变,使用 table.freeze()

const SETTINGS = { volume = 0 }
SETTINGS.volume = 1 -- 可以,改变表内的值
SETTINGS = {} -- 错误:无法重新赋值常量变量

保留名称 中的关键字不同,const 是上下文相关的。Luau 仅在 local 有效的地方将其视为关键字,因此使用 const 作为变量名称的现有代码仍然有效。

local const = 1
print(const) -- 1
const = 2 -- 可以,`const` 在这里是一个变量名称

有关更多信息和边缘情况,请参见 Luau 文档

©2026 Roblox Corporation、Roblox、Roblox 标志及 Powering Imagination 是我们在美国及其他国家或地区的注册与未注册商标。