变量(全局变量/局部变量)
Lua支持全局变量和局部变量的概念
全局变量:直接定义变量名,并赋值
局部变量:使用local关键字进行定义。
变量命名规则:遵循C/C++语言中的变量命名规则
避免定义下划线开头并跟着大写字母的变量名
Lua关键字不能用作变量名
Lua中的变量使用:
可以在一行中定义多个变量,尽量在定义变量时赋值
定义变量时不需要声明类型,变量具有动态类型
未赋值的变量,其默认值为nil(空值)
变量使用的注意事项:
局部变量的作用域仅限于块中(if、 else、while、 do 、 function )
在Lua中尽可能使用局部变量(访问速度快)(在Lua解释器中需要查找全局变量)
当不再使用全局变量时,用nil进行赋值
注意:
do
end
相当于
{
}
a, b = 1, 2, 3;
foo = "global";
do
local x, y = a, b;
local foo = foo;
print("foo = ", foo);
foo = "local";
print("foo = ", foo);
print("x = ", x);
print("y = ", y);
print("a = ", a);
print("b = ", b);
end
print("\n");
print("foo = ", foo);
print("x = ", x);
print("y = ", y);
print("a = ", a);
print("b = ", b);
a, b, foo = nil;
运行结果如下:
程序块(chunk)
Lua解释器以程序块的方式处理Lua代码每一段可执行的Lua代码都可以成为代码块
一个程序块由一条或者多条Lua语句构成:
简单的程序块:一条语句
复杂的程序块:多条不同语句及函数定义构成
单行注释: --
多行注释: --[[ ......]]
解注释操作:
enable code segment with a '-' //添加“-后即可恢复注释效果
多行注释技巧:
--[[
print("willwilling")
--]]
a, b = 1, 2, 3;
foo = "global";
--[[do //enable code segment with a '-' //添加“-后即可恢复注释效果
local x, y = a, b;
local foo = foo;
print("foo = ", foo);
foo = "local";
print("foo = ", foo);
print("x = ", x);
print("y = ", y);
print("a = ", a);
print("b = ", b);
end
--]]
print("\n");
print("foo = ", foo);
print("x = ", x);
print("y = ", y);
print("a = ", a);
print("b = ", b);
a, b, foo = nil;
运行结果如下:
小结:
Lua的变量名遵循C/C++语言变量名的规则
Lua可以在一行定义多个变量,且不需要声明类型
Lua程序中尽量使用局部变量,效率更高
Lua程序块指的是一条或者多条合法的可执行语句
Lua支持单行注释和多行注释