lua语言local声明的局部变量在什么地方有效什么地方无效? 指的是范围

 我来答
匿名用户
推荐于2017-11-25
展开全部

局部变量只在被声明的那个代码块内有效

代码块:控制结构,函数,chunk(变量被声明的那个文件或者文本串)

--$ cat local.lua 
x = 10
local i = 1                -- local to the chunk

while i<=x do
    local x = i*2            -- local to the while body
    print(x)                --> 2, 4, 6, 8, ...
    i = i + 1
end

if i > 20 then
    local x                -- local to the "then" body
    x = 20
    print(x + 2)
else
    print(x)                --> 10  (the global one)
end

print(x)                    --> 10  (the global one)
##$ lua local.lua 
2
4
6
8
10
12
14
16
18
20
10
10

注意,如果在交互模式下上面的例子可能不能输出期望的结果,因为第二句local i=1是一个完整的chunk,在交互模式下执行完这一句后,Lua将开始一个新的chunk,这样第二句的i已经超出了他的有效范围。可以将这段代码放在do..end(相当于c/c++的{})块中。


应该尽可能的使用局部变量,有两个好处:

1. 避免命名冲突

2. 访问局部变量的速度比全局变量更快.

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式