源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

lua脚本语言快速入门教程

  • 时间:2022-01-02 05:20 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:lua脚本语言快速入门教程
lua作为很好的嵌入式语言可以非常好的作为c/c++补充,在游戏行业是得到了广泛的应用 一直在思考,能不能把他引入商业领域的规则语言呢?将业务规则经常变的部分提炼出来, 而无须重新编译程序。作为规则引擎的角色进行使用 使用前当然得安装一下去[url=http://www.lua.org/]http://www.lua.org/[/url]下载一个 Lua_v5.1.4.23.exe安装,装完之后执行 可以用 lua.exe逐行解释的方式,或者写完脚本用lExecutor.wlua执行 [b]1)先来个helloworld[/b]
[u]复制代码[/u] 代码如下:
> print 'helloWorld' helloWorld > print("helloWorld") --注释是这么写的! helloWorld > a='hello' > print(a) hello
[b]2)主要类型 [/b]
[u]复制代码[/u] 代码如下:
> a=1 > b="abc" > c={} > d=print > > print(type(a)) number > print(type(b)) string > print(type(c)) table > print(type(d)) function >
如上所示,lua主要有四种类型,即数字,字符串,table(其实理解可以理解为javascript的object),以及函数类型, 当然了,还有最常的bool型了,true以及false,(这里不考虑nil,以及userdata,thread等) 函数类型的变量,加上”() “即可以执行,如
[u]复制代码[/u] 代码如下:
> d(b) abc
[b]3)变量及常量,字符串 [/b]
[u]复制代码[/u] 代码如下:
> a,b,c,d = 1,2,'c',{1} > print (a,b,c,d)       2       c       table: 0041BC58 > a="single 'quoted' string and double \"quoted\" string inside" > b='single \'quoted\' string and double "quoted" string inside' > c= [[ multiple line >> with'single' >> and "double" quoted strings inside.]] > > print(a) single 'quoted' string and double "quoted" string inside > print(b) single 'quoted' string and double "quoted" string inside > print(c)  multiple line with'single' and "double" quoted strings inside.  > a=a.."看我给接上"  --字符串用两个..可以进行连接 > print(a) single 'quoted' string and double "quoted" string inside看我给接上
我们关注一下lua比较特别的地方 1.声明变量及给变量赋值的时候,可以多变量一起赋值 2.字符串常量可以用双引号及单引号,并且混用的时候无须转义字符,跟php有点类型,还可以用”[[]]”括起来 这一点类似于c#里面字符串可以加上@符号,可以保留字符串内的格式 [b]4)逻辑控制语句[/b]
[u]复制代码[/u] 代码如下:
> a=10 --逻辑控制语句就不费口舌了,反正就这几个词,跟pl/sql有点像 > if a==10 then >> print("我是10") >> elseif a== 11 then >> print("我是11") >> else >> print("我是水户洋平等等") >> end 我是10
[b]5)循环结构 [/b]
[u]复制代码[/u] 代码如下:
> --第一种while循环 > a=1 > while a~=10 do >> io.write(a.."  ") >> a=a+1 >> end 1  2  3  4  5  6  7  8  9  > > --第二种repeat、until循环 > a=0 > repeat >>      a=a+1 >>      print(a) >> until a==5 1 2 3 4 5 > --第三种for循环 > for a=1,4 do >>      io.write(a) >> end 1234> > --比较特别,有个步进的概念,如下是以2为步进 13> for a=1,4,2 do >> io.write(a..' ') >> end 1 3 > for a=1,5,2 do >> io.write(a.. '  ') >> end 1  3  5  >
[b]6)函数及其使用[/b]
[u]复制代码[/u] 代码如下:
> --1.先来个最简单的 > function myFunc1() >>      print("hello function") >> end > myFunc1() hello function > --2.再来个带参数的 > a=1 > b=2 > function myFunc2(par1,par2) >>      return par1+par2 >> end > c=myFunc2(a,b) > print(c) > --3.甚至可以返回多个变量 > a=1 > b=2 > function myFunc3(A,B) >>      return B,A >> end > c = myFunc3(a,b) --c会等于返回的第一个,在此倒转过来即为2 > print(c) > c,d=myFunc3(a,b) --当然如果给多个变量赋值就没有问题了 > print(c,d)       1 > print(myFunc3(a,b)) --直接打印就把所有打印出来       1 > --4.还可以是变参 > function myFunc4() >> print() >> end > myFunc4(a,b,c,d)       2       2       1
[b]7)table(我觉得理解object也可以)的使用 [/b]
[u]复制代码[/u] 代码如下:
> linbc={} > linbc.sex = "男" > linbc.age = 27 > print(linbc,linbc.sex,linbc["age"]) table: 0041ED50 男      27 > A=linbc > print(A["sex"]) 男 > print(A)  --引用类型,看A以及linbc内存地址是一样的 table: 0041ED50 >  --瞧这用法,跟javascript的用法基本相当 >  --其实还可以理解为hashmap似的键值对 > for i,v in pairs(linbc) do >>    print(i,v) >> end age     27 sex     男 >  --也可以作为数组,下标是从1开始的喔 > arr={1,2,3,"a",'b',linbc} > for i,v in pairs(arr) do >>    print(i,v) >> end       1       2       3       a       b       table: 0041ED50 >  --既然作为数组吧,那肯定是可以增加记录的吧 > table.insert(arr,A) > table.foreach(arr,function(i,v) print(v) end) a b table: 0041ED50 table: 0041ED50 > --瞧上面,可以foreach,还可以用匿名函数喔 > --当然也可以用下标访问了 > print(arr[1]) > --调用table.insert会自动给增加下标,如 > table.insert(linbc,"hello") > print(arr[1]) 1
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部