第一章语言要点
基本语法
lua不使用分号和大括号。
变量和类型
lua的变量是无类型的,可以直接定义x=2。也可以此意定义多个变量x,y,z= 1,2,3
几个值得注意的常量:
- nnil通常代表未定义的值,指nothing’
- true和false:在条件中,false和nil都是false,其他均为true
操作
or and < > <= >= ~=(不等于) == + - × / % not(取反)
- or and not是逻辑操作:或、与、非
- .. 是字符串链接操作
- ^ 表示次方,比如2^3即2的三次方
- # 表示获取字符串或者表格的长度
值得注意的是 不同于python和c++,lua中不存在i+=2这种指令。而操作本身是有限制的,不能出现a=b=1这种指令。
条件
其条件语句结构:
if state == 5 them
do something
elseif foo then
a = true
else
b = false
end
循环
while循环
i = 1
while i <= 5 do
i = i + 1
print(i)
end
repeat循环
i = 5
repeat
i = i - 1
print(i)
until i == 1
Numeric for
for循环与c++的有些不同在C++中:
for (i = start;i<limit;i+=step)
{
dosomething
}
而在lua中
for i = start, limit ,step
dosomething
end
类似的while的Numeric循环:
i = start
while i <= limit do
dosomething
var = var + step
end
循环终止条件
在lua中也可以使用break,命令强制从循环跳出,但是没有continue指令让循环继续执行。
函数
function foo()
local x,y = something(4,5)
return x^y
end
function name(arg1, arg2)
local para1 = (arg1+arg2)/2
local para2 = arg1-arg2
return para1+para2,para1*para2
end
几点说明:
- 可以看到在函数内声明局部变量时,需要加上前缀local
- 函数可以返回多个值
- 不支持设置默认参数值,但有许多其他方法可以实现,详情见第三部分。
参考链接:
http://nova-fusion.com/2012/08/27/lua-for-programmers-part-1/
https://blog.youkuaiyun.com/Hungryof/article/details/51992895