第3课 - 起航Lua之路
一、主题(Agenda)
- 变量(全局变量/局部变量)
- 程序块(chunk)
- 注释(单行注释/多行注释)
二、变量(全局变量/局部变量)
1、Lua支持全局变量和局部变量的概念。
-
全局变量:直接定义变量名,并且赋值。(a = 1; // 分号可选)
-
局部变量:使用local关键字进行定义。(local b = 2;)
2、变量命名规则
- 遵循C/C++语言中的变量命名规则。
- 避免定义下划线开头并跟着大写字母的变量名。
- Lua关键字不能用作变量名。
例子:
s = "Lua"; (✔)
i = 1; (✔)
_float_ = 0.01; (✔)
PI = 3.14; (✔)
if = "err"; (✘ if是关键字)
_Err = 0.1; (✘ )
标识符 = 1;(✘ 不能以汉字作为变量名)
_PI_ = 3.14; (✘)
3、Lua中的变量使用
- 可以在一行定义多个变量,尽量在定义变量时赋值。
- 定义变量时不需要声明类型,变量具有动态类型。
- 未赋值的变量,其值为 nil(空值)。
示例:
a = 1; --> a = 1
b, c = "2"; --> b = "2"; c = nil;
d = 3, 4; --> d = 3;
4、变量使用的注意事项
- 局部变量的作用域仅限于块中(if, else, while, do, function)
- 在Lua中尽可能使用局部变量(访问速度更快),因为每个全局变量Lua都会有记录,记录多了查找起来就慢了。
- 当不再使用全局变量的时候,使用 nil 进行赋值,使得Lua编译器知道这些全局变量不使用了,可以进行销毁。
三、程序块
- Lua解释器以程序块的方式处理Lua代码。
- 每一段可执行的Lua代码都可以称为程序块。
- 一个程序块由一条或多条Lua语句构成。
简单的程序块:一条语句
复杂的程序块:多条不同语句及函数定义构成
下面的语句是程序块吗?
function f(a, b)
return a*a - b*b;
end
(✔)// function函数是语句块。
a = 1 b = 2
a = a*a - b*b
(✔) // a = 1 b = 2之间可以没有分号。
local a = a;
(✔)// 第二个a肯定是全局变量,然而没有定义,那么为 nil。
do
return 1;
(✘) // 没有end 结束块
四、注释(单行注释/多行注释)
- 单行注释: --
- 多行注释:--[[ ......]]
多行注释技巧:
--[[
print("Hello!");
--]]
如上所示,可以注释掉print打印语句,如果我们又想还原的话,不需要去掉--[[ ...--]] ,而只需要在--[[前加一个- ,变成 ---[[就可以取消注释了。特别方便。
五、小结
1.Lua的变量名遵循C/C++语言变量名的规则
2.Lua可以在一行定义多个变量,且不需要声明类型
3.Lua程序中尽量使用局部变量,效率更高
4.Lua程序块指一条或多条合法的可执行语句
5.Lua支持单行注释和多行注释