变量
变量使用前必须声明,lua的变量默认全局的,哪怕该变量在函数中。局部变量使用local
进行声明,仅在作用域中有效。函数中声明的变量,在函数调用前是不会起作用的。
代码示例:
function foo(n)
a = 3 * n
local b = 5 * n
end
print(a)
print(b)
foo(10)
print(a)
print(b)
输出结果:
nil
nil
30
nil
变量赋值参考go语言的即可,先计算右侧的,再计算左侧的。代码示例:
function foo(n)
local a = 3 * n
local b = 4 * n
return a, b
end
a, _ = foo(3)
x = 1
y = 2
x, y = y, x
print(a, x, y)
输出:
9 2 1
右侧往左侧赋值原则是:多的忽略,少的为nil
table
的索引如果是string
,那么可以使用t.i
的格式,比如:
tb = {k=10}
tb["fruit"] = "apple"
print(tb.k, tb.fruit)
循环
lua支持3钟循环类型,分别是:
for
,支持步长循环:
从for var = exp1, exp2, exp3 do <执行体> end
exp1
变化到exp2
,每次exp3
的步长,不指定默认是1。注意都是闭区间,exp3
可以是负数!!while
,最简单的条件循环while (condition) do staements done
repeat...until
,相当于do {...} while
循环。repeat statements until (condition)
条件判断
主要就是if...else
判断,基本步骤:
if (condition) then
statements
elseif (condition) then
statements
else
statements
注意,if (0)
是会执行的,只有false
和nil
不会执行