1.1-Chunks
Chunk是一系列的语句,你可以理解为Lua可以成功执行不出错的一系列语句。
lua执行的每一块语句,比如一个文件,一行代码,一个函数都可以理解为一个chunk。
1.2-Blocks
语句块(Block)
语句块是一列语句段;从语法上来说,一个语句块跟一个 chunk 相同.
1.3-赋值
Lua 允许多重赋值。
因此,赋值的语法定义是等号左边放一系列变量, 而等号右边放一系列的表达式。
两边的元素都用逗号间开。
如:
a,b,c = 1,2,3
a,b,c = 1+2,2*2,3-1
右边个数 大于 左边 ,右边的会被丢弃
反之 ,左边多出的变量会被用nil填充
赋值段首先会做运算完所有的表达式,然后仅仅做赋值操作。
i = 3
i, a[i] = i+1, 20
--同
i, a[3] = 4, 20
所以
x,y = y,x
可以互换x,y的值
1.4-控制结构
- if
- while
- repeat
- for
- reutrn
- break
if exp then
block
elseif exp then
block
else
block
end
while exp do
block
end
repeat
block
until
exp
在 repeat–until 循环中, 内部语句块的结束点不是在 until 这个关键字处, 它还包括了其后的条件表达式。 因此,条件表达式中可以使用循环内部语句块中的定义的局部变量。
for i = a,b do
block
end
条件表达式中除了 nil 和 false认为假,其他均为真,包括 0 和 空字符串
return 可返回多个值
function func()
a=1
b=2
reutrn a,a+b
end
break 用法与其他编程语言相同,不再赘述,用于跳出最内层循环
1.5-For语句
详细讲述for语句语法
1.数字形式
for var = e1,e2,e3 do
block
end
循环从 e1 到 e2 ,步长 为 e3
e1,e2,e3 若为表达式,其结果必须为数字!
e3 可 省略,默认为 1
2.一般形式
for var1,...varn in explist do
block
end