资源描述:
《lua基础语法(二)》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、DataIndustryResearchLab.秦皇岛数据产业研究院LUA基础语法(二)目录表的构造语句函数实例程序表的构造table是Lua中唯一的一个数据结构,(自定义数据类型)通过table,我们能扩展出其他的数据结构,比如:数组,类。构造器是创建和初始化表的表达式。最简单的构造函数是{},用来创建一个空表。如a={}初始化表的方式类似列表(list)的初始化a={“1”,“2”,“3”}类似字典(record)的初始化a={x=1,y=2,z=3};<-->a={};a.x=1;a.y=2;a.z=3<-->a={};a[“x”]=1;a[“y”]=2;a[“z”]=3混合
2、型就是将上面两种混在一起。polyline={"test",color="blue",thickness=2,npoints=4,{x=0,y=0},{x=-10,y=0},{x=-10,y=1},}注意:可以把这个类型看作数组;可以用任意类型来做数组索引,除了nil;所有元素之间,总是用”,”隔开;所有索引值都需要用”[”和”]”括起来;如果是字符串还可以去掉引号和中括号;在构造函数的最后的“,”是可选的,可以方便以后的扩展。如果不写索引,则索引就会被认为是数字,并按顺序自动从1往后编排。不管用何种方式创建table,我们都可以向表中添加或者删除任何类型的域,构造函数仅仅影响表的
3、初始化。w={1,2,3}w[4]=4w[3]=nilfori,vinipairs(w)doprint(i,v)end语句赋值语句“=”流程控制语句if语句for语句while语句repeat-until语句break和return语句赋值语句赋值是改变一个变量的值和改变表域的最基本的方法。如:a=“hello”..“world”t.n=t.n+1例:a={x=1,y=2,z=3}a.x=a.x+1print(a.x)赋值语句在Lua中被强化了,它可以同时给多个变量赋值。变量列表和值列表的各个元素用逗号分开,赋值语句右边的值会依次赋给左边的变量。例如:a,b,c,d=1,2,3甚至
4、是:a,b=b,a--交换变量多值赋值经常用来交换变量,或将函数调用返回给变量:a=1;b=2--交换两个数a,b=b,aprint(a,b)if语句if(条件判断)thenend为true则执行if(条件判断)thenelseend为true则执行为false则执行if(条件判断)thenelseif(条件判断)thenend为true则执行为true则执行a=1,b=2if(a==b)thenprint(“OK”)elseprint(“false”)endWhile语句while(条件判断)doend为true则执行先判断后执行repeat-until语句:repeat语句;u
5、ntil(条件判断);先执行后判断for语句for语句有两大类:第一,数值for循环:exp3可以省略默认为1forvar=exp1,exp2,exp3doloop-partendfor将用exp3作为step从exp1(初始值)到exp2(终止值),执行loop-part。其中exp3可以省略,默认step=1有几点需要注意:三个表达式只会被计算一次,并且是在循环开始前。fori=1,f(x)do--f(x)只会在循环前被调用一次。print(i)end2.控制变量var是局部变量自动被声明,并且只在循环内有效.fori=1,10do--i是局部变量,只在语句块内有效print(
6、i)endmax=iprint(max)-->nil3.循环过程中不要改变控制变量的值,那样做的结果是不可预知的。如果要退出循环,使用break语句。fori=1,10doprint(i)i=1--这样的情况将会产生不可预知的结果--breakend第二,范型for循环:fori,vinipairs(a)doprint(v)end--printallvaluesofarray'a'范型for遍历迭代子函数返回的每一个值。例:t={"Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"}fori,v
7、inipairs(t)doprint(i,v)endforkinpairs(t)doprint(k)end--printallkeysoftable't‘例:w={4,5,6}forvinpairs(w)doprint(v)end范型for和数值for有两点相同:1)控制变量是局部变量2)不要修改控制变量的值break和return语句break语句用来退出当前循环(for,repeat,while)。在循环外面不可以使用。return用来从函数返回结果,当一个函数自