符号【=】用于对左边的参数赋值,在等号右边的元素回先求职,然后赋值
所以
a[i],a[j]=a[j],a[i]
是可以直接交换的;
另外,【=】可以给多个元素赋值
如
a,b,c=1,2;
a,b=1,2,3;
按照顺序一一对应,但是如果是左边轮空的一个元素,就是赋值为nil;右边轮空的就会被无视
局部变量【local】类似于js中的【let】【var】不做多描述,
但是在交互模式中,
需要界定一个作用域,因为交互模式输入的每一行内容自成一个程序块;
用【do-end】界定
Lua的控制结构【if then else】【while】与其他语言类似
【repeat until】类似于【do while】
【for】分为两种,数字型的【for】语法如下
for i=x,y,z do
<执行体>
end
其中,x和y分别表示初值和终值,z表示每次循环增涨的幅度,可以不指定,不指定的话默认为1
如果y的值为math.huge,那么则是一个没上限的循环
泛型【for】实际上是一个借用各种迭代器
用于数组的迭代器ipairs
for i,v in ipairs(a) do
print(v);
end
用于table的迭代器pairs
for k in pairs(a) do
print(k);
end
用于字符串的迭代器string.gmatch
for k in string.gmatch(a) do
print(k);
end
甚至可以自己编写迭代器