第3课

一、主题(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支持单行注释多行注释



原文地址:https://www.cnblogs.com/hoiday/p/10739450.html