为什么lua里面可以重复定义一个变量
lua吧
全部回复
仅看楼主
level 2
望想当逍遥
楼主
比如说
local a = 1;
local a = 2;这个不会报错下面这个也可以
local a = 1;
a = 2;
这两个定义有什么区别吗
2016年11月25日 02点11分
1
level 6
lihaoooo
加local表示局部变量,没加是全局变量,lua是动态语言,不像静态语言那么多限制
2016年11月25日 03点11分
2
level 11
协调意志_Tox
你已经local 了a 那么,下面的a就不会在全局变量里找了,
直接上局部了,但是貌似这个只在do-end区内或者function区内才可以用的哦(我记得不应该这样,可能你在全局执行的代码只访问全局,局部的优先访问局部)
2016年11月26日 09点11分
3
level 2
wuwao_1
顶一下,真心求解
下面这段代码两个data都是局部变量,但是仿佛在两个域当中,可以交叉变化。为啥啊???
local data = 100; --> data:100
function fun1()
print(data);
data = data+50;
end
fun1(); -- 调用fun1() 输出: 100
local data = 300; --> data:300
function fun2()
print(data);
data = data+50;
end
fun2(); -- 调用fun2() 输出: 300
fun1(); -- 调用fun1() 输出: ? -- 150
fun2(); -- 调用fun1() 输出: ? -- 350
2018年02月27日 07点02分
4
exe19890522
fun1的print(data); 就是你第一个local data = 100的值,接着是data = 150;但是你又local data = 300了,中间的150白弄了,fun2()里面的data就是300,如果你在fun2(); -- 调用fun2() 输出: 300这句话后面再来一个打印data值就是350了。你的fun1和fun2里面都是先打印data值再是加法运算。
2018年09月19日 12点09分
1