Lua 语言中的变量,默认全部都是全局变量,就算是声明在函数内的变量,也是 全局变量。 如果想在Lua 中声明局部变量,需要使用“local”关键字明确标示出来。 变量的默认值是nil,类似于C#中的null。 我在下面代码中加入了注释,直接看代码吧:

--虽然temp001变量加了local成了局部变量
–但是在meth函数内部依然可以访问
–原因是因为变量仍在脚本中,类似于C#的privite
–外部脚本无法调用temp001这个变量
local temp001=”11111”
temp002=”22222”

print(temp001,temp002)

–定义局部函数,但是在该脚本仍然可以调用
–外部脚本无法调用此函数
local function meth()
print(temp002,temp001)
–定义在函数内的局部变量temp003
local temp003=”333333”

--Lua中所有脚本默认都是全局变量
temp004="44444"
print(temp003)

end

meth()

–无法访问到temp003,就会输出nil,与null作用相同
print(temp003)

print(temp004)

结果如下:

>lua -e “io.stdout:setvbuf ‘no’” “1.lua”
11111 22222
22222 11111
333333
nil
44444

Exit code: 0