Scope(作用域)

Time:5 分钟

进行脚本编写时,开发者可以通过 Scope(作用域)对变量或函数的“可见”和可访问区域进行定义。articles/Loops|循环articles/Function|函数articles/Conditional Statements in Lua|条件语句等元素都会创建新的 Scope Block(作用域区块)。每个区块都能够访问处于其父项区块中的剧本变量或函数,但当这些数据位于其子项区块时将无法对其进行获取。

https://developer.roblox.com/assets/bltd46ee264544ef2f3/Scope-Diagram.png

https://developer.roblox.com/assets/blt0ae9a4266bb09810/Green-Bullet.png

B 区块可以访问 A 区块中的局部变量。

https://developer.roblox.com/assets/blt0ae9a4266bb09810/Green-Bullet.png

C 区块可以访问 A 区块与 B 区块中的局部函数与变量。

https://developer.roblox.com/assets/blt4250e428bdfc7e26/Red-Bullet.png

A 区块无法访问 B 区块与 C 区块中的局部函数与变量。

https://developer.roblox.com/assets/blt4250e428bdfc7e26/Red-Bullet.png

B 区块无法访问 C 区块中的局部变量。

Local Scope(局部作用域)

在变量与函数前添加 local 前缀后,可以将其作用域限制为局部作用域。下列示例中的 testFunc() 函数和 testVar 变量的作用域均已被设为局部:

Roblox官方链接:Scope(作用域)