Lua语言变量、函数、运算符、循环
变量
先声明,后使用。
三种类型:全局变量(默认),局部变量(作用范围:从声明开始,到所在的语句块结束),表中的 域
-- test vara = 5;local b = 5function testInit()c = 6;local d = 7endtestInit();b = 9doc = 8endd = "u"print(a,b,c,d)
变量赋值
a = 变量值。
a,b = 1,2
a = 1+2
常用:x , y = y, x a,b,c = 1,2
变量个数 > 值的个数:按照变量的个数 补足 nil。
a,b,c = 1,2,3,4
变量个数<值的个数:多余的值会被忽略。
a,b,c = 0
a = 0,b = nil, c=nil
多变量赋值:还可以用于函数的返回, 参数值互换。 a,b = func();
需要赋值给变量,如果能用局部变量,尽量用局部变量。
索引
对table中元素的访问。
tab["key"] tab.keyprint("-----------索引--------------") tab = {key1 = "中国",key2 = "美国"} print(tab["key1"])print(tab.key2)
循环
用途:做一些有规律的重复操作。
循环体 :一组被重复执行的语句。循环条件 :判断能否继续循环。
while循环
while(循环条件) do
业务代码;
对循环条件的控制; end
a = 1
while(a<5) do
print(a)
a = a+1 end
for循环
数值for循环:for var=exp1,exp2,exp3 do 循环体endvar的值,从exp1一直到exp2,步长是exp3(是可选的,默认是1)print("----for----")for i=1,10,2 doprint(i)endexp1,exp2,exp3 只在循环开始前计算一次。泛型for循环:是通过迭代器进行的。a = {"one","two","three"}for k,v in pairs(a) do print(v)end
repeat until
repeat
循环体
until(条件)
先执行循环体,直到满足条件。如果条件为false,继续执行循环体,如果条件为true,则跳出循 环。
流程控制
if()
print("-----------if-------------") a = 1
if(a == 1) then
print(a.."是1")
end
0 是 true。
函数
函数定义
print()功能:1。完成指定的任务。2。计算并返回值(可以返回多个值)。 函数的范围(local ,缺省)function 函数名称(参数列表)函数体;return 结果 end定义一个函数:实现求两个数的最大值。print("---------------函数定义:求最大值---------------") function testMax(num1,num2)if (num1 > num2) thenresult = num1; elseresult = num2; endreturn result; endprint("15,20中的最大值是:"..testMax(15,20))函数可以作为参数进行传递。例子:自定义打印函数。print("---------------函数定义:自定义打印函数---------------")myPrint = function(p)print("重新的打印函数:",p) end;myPrint("test");function add(num1,num2,myPrintParam)result = num1 + num2;myPrintParam(result); endadd(2,3,myPrint)
多值返回
print("---------------多值返回---------------")startIndex,endIndex = string.find("www.mashibing.com","ma") print(startIndex , endIndex)例子:找出一个数组中,最大的值,以及它的索引。print("---------------找出数组中,最大的值,以及索引---------------") function testMax(a)local iIndex = 1;local iValue = a[iIndex];for i,v in pairs(a) doif v > iValue theniIndex = i;iValue = v;endendreturn '最大值的索引:'..iIndex , '最大值是:'..iValue endprint(testMax({1,4,8,2,7,10,6,3}))
可变参数
运算符
算术运算符
+ 加
- 减
* 乘
/ 除
% 取余 ^ 乘幂 - 负号
关系运算符
== 等于。
~=不等于
> 大于
< 小于
>= 大于等于 <= 小于等于
逻辑运算符
and or
not
其他运算符
.. 连接符
# 计算字符串或者 表 的长度。