1)先来个helloworld:

--注释是这么写的!print 'helloWorld'--输出结果:helloWorlda='hello'print(a)--输出结果:hello

2)主要类型:

a=1b="abc"c={}d=printprint(type(a))--输出结果:numberprint(type(b))--输出结果:stringprint(type(c))--输出结果:tableprint(type(d))--输出结果:function

函数类型的变量,加上"() "即可以执行,如:

d(b)--输出结果:abc

3)变量及常量,字符串:

a,b,c,d = 1,2,'c',{1}print (a,b,c,d)-- 输出结果:1       2       c       table: 0041BC58a="single 'quoted' string and double \"quoted\" string inside"b='single \'quoted\' string and double "quoted" string inside'c= [[multiple linewith'single'and "double" quoted strings inside。]]print(a)--输出结果:single 'quoted' string and double "quoted" string insideprint(b)--输出结果:single 'quoted' string and double "quoted" string insideprint(c)--输出结果:--multiple line--with'single'--and "double" quoted strings inside。--字符串用两个..可以进行连接a=a.."字符串连接"print(a)--single 'quoted' string and double "quoted" string inside。字符串连接

我们关注一下lua比较特别的地方

  • 声明变量及给变量赋值的时候,可以多变量一起赋值

  • 字符串常量可以用双引号及单引号,并且混用的时候无须转义字符,跟php有点类型,还可以用"[[]]"括起来,

    这一点类似于c#里面字符串可以加上@符号,可以保留字符串内的格式

4)逻辑控制语句:

--逻辑控制语句a=168if a==168 then    print("一路发")elseif a== 1314 then    print("一生一世")else    print("数字语言")end--输出结果:一路发

5)循环结构:

第一种:

a=1result = ""while a~=10 do    result = result..a.."  "    a=a+1endprint(result)--输出结果:1  2  3  4  5  6  7  8  9

第二种:

--repeat、until循环a=0result = ""repeat      a=a+1      result = result..a.."  "until a==9print(result)--输出结果:1  2  3  4  5  6  7  8  9

第三种:

--第三种for循环result = ""for a=1,4 do    result = result..a.." "endprint(result)--输出结果:1 2 3 4

for循环有个步进的概念,默认为1,以下例子步进为2:

result = ""for a=1,10,2 do    result = result..a.." "endprint(result)--输出结果:1 3 5 7 9

6)函数及其使用:

--1.先来个最简单的function myFunc1()    print("hello function")endmyFunc1()--输出结果:hello function--2.再来个带参数的a=1b=2function myFunc2(par1,par2)    return par1+par2endc=myFunc2(a,b)print(c)--输出结果:3--3.甚至可以返回多个变量a=1b=2function myFunc3(A,B)    return B,Aendc,d=myFunc3(a,b) --当然如果给多个变量赋值就没有问题了print(c,d)--输出结果:2       1print(myFunc3(a,b)) --直接打印就把所有打印出来--输出结果:2       1--4.还可以是变参function myFunc4(...)    print(...)endmyFunc4(a,b,c,d)--输出结果:1       2       2       1

7)table(理解为可变参数object)的使用:

person={}person.sex = "男"person.age = 27print(person," "..person.sex," "..person["age"])--输出结果:table: 01405AB0 男      27A=personprint(A["sex"])--输出结果:男print(A)  --引用类型,看A以及linbc内存地址是一样的--输出结果:table: 01405AB0for i,v in pairs(person) do    print(i.."==>"..v)end--输出结果:--age==>27--sex==>男--也可以作为数组,下标是从1开始的喔arr={1,2,3,"a",'b',person}for i,v in pairs(arr) do   print(i," ",v)end--输出结果:--1       1--2       2--3       3--4       a--5       b--6       table: 01405AB0--既然作为数组吧,那肯定是可以增加记录的吧table.insert(arr,A)table.foreach(arr,function(i,v) print(v) end)--输出结果:--1--2--3--a--b--table: 01405AB0--table: 01405AB0--当然也可以用下标访问了print(arr[1])--输出结果:1--调用table.insert会自动给增加下标,如table.insert(person,"hello")print(arr[1])--输出结果:1