lua作為很好的嵌入式語言可以非常好的作為c/c++補充,在游戲行業(yè)是得到了廣泛的應(yīng)用
一直在思考,能不能把他引入商業(yè)領(lǐng)域的規(guī)則語言呢?將業(yè)務(wù)規(guī)則經(jīng)常變的部分提煉出來,
而無須重新編譯程序。作為規(guī)則引擎的角色進行使用
使用前當(dāng)然得安裝一下去http://www.lua.org/下載一個 Lua_v5.1.4.23.exe安裝,裝完之后執(zhí)行
可以用 lua.exe逐行解釋的方式,或者寫完腳本用lExecutor.wlua執(zhí)行
1)先來個helloworld
復(fù)制代碼 代碼如下:
> print 'helloWorld'
helloWorld
> print("helloWorld") --注釋是這么寫的!
helloWorld
> a='hello'
> print(a)
hello
2)主要類型
復(fù)制代碼 代碼如下:
> a=1
> b="abc"
> c={}
> d=print
>
> print(type(a))
number
> print(type(b))
string
> print(type(c))
table
> print(type(d))
function
>
如上所示,lua主要有四種類型,即數(shù)字,字符串,table(其實理解可以理解為javascript的object),以及函數(shù)類型,
當(dāng)然了,還有最常的bool型了,true以及false,(這里不考慮nil,以及userdata,thread等)
函數(shù)類型的變量,加上”() “即可以執(zhí)行,如
復(fù)制代碼 代碼如下:
> d(b)
abc
3)變量及常量,字符串
復(fù)制代碼 代碼如下:
> 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看我給接上
我們關(guān)注一下lua比較特別的地方
1.聲明變量及給變量賦值的時候,可以多變量一起賦值
2.字符串常量可以用雙引號及單引號,并且混用的時候無須轉(zhuǎn)義字符,跟php有點類型,還可以用”[[]]”括起來
這一點類似于c#里面字符串可以加上@符號,可以保留字符串內(nèi)的格式
4)邏輯控制語句
復(fù)制代碼 代碼如下:
> a=10 --邏輯控制語句就不費口舌了,反正就這幾個詞,跟pl/sql有點像
> if a==10 then
>> print("我是10")
>> elseif a== 11 then
>> print("我是11")
>> else
>> print("我是水戶洋平等等")
>> end
我是10
5)循環(huán)結(jié)構(gòu)
復(fù)制代碼 代碼如下:
> --第一種while循環(huán)
> a=1
> while a~=10 do
>> io.write(a.." ")
>> a=a+1
>> end
1 2 3 4 5 6 7 8 9 >
> --第二種repeat、until循環(huán)
> a=0
> repeat
>> a=a+1
>> print(a)
>> until a==5
1
2
3
4
5
> --第三種for循環(huán)
> 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 >
6)函數(shù)及其使用
復(fù)制代碼 代碼如下:
> --1.先來個最簡單的
> function myFunc1()
>> print("hello function")
>> end
> myFunc1()
hello function
> --2.再來個帶參數(shù)的
> 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會等于返回的第一個,在此倒轉(zhuǎn)過來即為2
> print(c)
> c,d=myFunc3(a,b) --當(dāng)然如果給多個變量賦值就沒有問題了
> print(c,d)
1
> print(myFunc3(a,b)) --直接打印就把所有打印出來
1
> --4.還可以是變參
> function myFunc4()
>> print()
>> end
> myFunc4(a,b,c,d)
2 2 1
7)table(我覺得理解object也可以)的使用
復(fù)制代碼 代碼如下:
> linbc={}
> linbc.sex = "男"
> linbc.age = 27
> print(linbc,linbc.sex,linbc["age"])
table: 0041ED50 男 27
> A=linbc
> print(A["sex"])
男
> print(A) --引用類型,看A以及l(fā)inbc內(nèi)存地址是一樣的
table: 0041ED50
> --瞧這用法,跟javascript的用法基本相當(dāng)
> --其實還可以理解為hashmap似的鍵值對
> for i,v in pairs(linbc) do
>> print(i,v)
>> end
age 27
sex 男
> --也可以作為數(shù)組,下標(biāo)是從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
> --既然作為數(shù)組吧,那肯定是可以增加記錄的吧
> table.insert(arr,A)
> table.foreach(arr,function(i,v) print(v) end)
a
b
table: 0041ED50
table: 0041ED50
> --瞧上面,可以foreach,還可以用匿名函數(shù)喔
> --當(dāng)然也可以用下標(biāo)訪問了
> print(arr[1])
> --調(diào)用table.insert會自動給增加下標(biāo),如
> table.insert(linbc,"hello")
> print(arr[1])
1
您可能感興趣的文章:- Lua腳本語言簡明入門教程
- Lua極簡入門指南(一):基礎(chǔ)知識篇
- Lua極簡入門指南(三): loadfile和錯誤處理
- Lua極簡入門指南(一):函數(shù)篇
- Lua極簡入門指南:全局變量
- Lua入門學(xué)習(xí)筆記
- Lua極簡入門指南(六):模塊
- Lua 極簡入門指南(七):面向?qū)ο缶幊?/li>
- Lua腳本語言基本語法快速入門教程
- Lua語言新手簡單入門教程