最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

lua腳本語言快速入門教程

 更新時間:2015年03月28日 13:07:14   投稿:junjie  
這篇文章主要介紹了lua腳本語言快速入門教程,本文講解了變量及常量、字符串、邏輯控制語句、循環(huán)結構、函數(shù)及其使用等內(nèi)容,需要的朋友可以參考下

lua作為很好的嵌入式語言可以非常好的作為c/c++補充,在游戲行業(yè)是得到了廣泛的應用

一直在思考,能不能把他引入商業(yè)領域的規(guī)則語言呢?將業(yè)務規(guī)則經(jīng)常變的部分提煉出來,

而無須重新編譯程序。作為規(guī)則引擎的角色進行使用

使用前當然得安裝一下去http://www.lua.org/下載一個 Lua_v5.1.4.23.exe安裝,裝完之后執(zhí)行

可以用 lua.exe逐行解釋的方式,或者寫完腳本用lExecutor.wlua執(zhí)行

1)先來個helloworld

復制代碼 代碼如下:

> print 'helloWorld'
helloWorld
> print("helloWorld") --注釋是這么寫的!
helloWorld
> a='hello'
> print(a)
hello

2)主要類型

復制代碼 代碼如下:

> 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ù)類型,

當然了,還有最常的bool型了,true以及false,(這里不考慮nil,以及userdata,thread等)

函數(shù)類型的變量,加上”() “即可以執(zhí)行,如

復制代碼 代碼如下:

> d(b)
abc

3)變量及常量,字符串

復制代碼 代碼如下:

> 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#里面字符串可以加上@符號,可以保留字符串內(nèi)的格式

4)邏輯控制語句

復制代碼 代碼如下:

> a=10 --邏輯控制語句就不費口舌了,反正就這幾個詞,跟pl/sql有點像

> if a==10 then

>> print("我是10")

>> elseif a== 11 then

>> print("我是11")

>> else

>> print("我是水戶洋平等等")

>> end

我是10

5)循環(huán)結構

復制代碼 代碼如下:

> --第一種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ù)及其使用

復制代碼 代碼如下:

> --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會等于返回的第一個,在此倒轉過來即為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

7)table(我覺得理解object也可以)的使用

復制代碼 代碼如下:

> 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的用法基本相當

>  --其實還可以理解為hashmap似的鍵值對

> for i,v in pairs(linbc) do

>>    print(i,v)

>> end

age     27

sex     男

>  --也可以作為數(shù)組,下標是從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ù)喔

> --當然也可以用下標訪問了

> print(arr[1])

> --調(diào)用table.insert會自動給增加下標,如

> table.insert(linbc,"hello")

> print(arr[1])

1

相關文章

  • Lua調(diào)用自定義C模塊

    Lua調(diào)用自定義C模塊

    Lua可以調(diào)用C函數(shù)的能力將極大的提高Lua的可擴展性和可用性。對于有些和操作系統(tǒng)相關的功能,或者是對效率要求較高的模塊,我們完全可以通過C函數(shù)來實現(xiàn),之后再通過Lua調(diào)用指定的C函數(shù)。對于那些可被Lua調(diào)用的C函數(shù)而言,其接口必須遵循Lua要求的形式
    2015-09-09
  • lua開發(fā)中實現(xiàn)MVC框架的簡單應用

    lua開發(fā)中實現(xiàn)MVC框架的簡單應用

    最近的游戲項目中使用了lua腳本來開發(fā),項目中用到了MVC框架,最近有朋友問我怎么弄,在這里簡單分享一下思路和一些開發(fā)中的技巧。有需要的小伙伴可以參考下。
    2015-04-04
  • lua+love2d制作的2048游戲

    lua+love2d制作的2048游戲

    前面給大家分享的是一個超級簡單版的使用lua實現(xiàn)的2048小游戲的代碼,今天我們加上love2d游戲引擎,制作PC版的2048游戲。小伙伴們仔細讀讀本文吧。
    2015-03-03
  • Lua中ipair和pair的區(qū)別

    Lua中ipair和pair的區(qū)別

    這篇文章主要介紹了Lua中ipair和pair的區(qū)別,ipair和pair都是用來遍歷table用的,需要的朋友可以參考下
    2014-09-09
  • Lua教程(十七):C API簡介

    Lua教程(十七):C API簡介

    這篇文章主要介紹了Lua教程(十七):C API簡介,本文講解了基礎知識、棧、C API中的錯誤處理、Lua調(diào)用C程序、C程序調(diào)用Lua代碼的錯誤處理等內(nèi)容,需要的朋友可以參考下
    2015-04-04
  • Lua實現(xiàn)split函數(shù)

    Lua實現(xiàn)split函數(shù)

    這篇文章主要介紹了Lua實現(xiàn)split函數(shù),lua中沒有split分割字條串函數(shù),本文使用自定義函數(shù)實現(xiàn),需要的朋友可以參考下
    2015-04-04
  • Lua教程(四):在Lua中調(diào)用C語言、C++的函數(shù)

    Lua教程(四):在Lua中調(diào)用C語言、C++的函數(shù)

    這篇文章主要介紹了Lua教程(四):在Lua中調(diào)用C語言、C++的函數(shù),本文給出了多個示例講解如何在Lua中調(diào)用C/C++寫的函數(shù),需要的朋友可以參考下
    2014-09-09
  • 編寫高性能Lua代碼的方法

    編寫高性能Lua代碼的方法

    這篇文章主要介紹了編寫高性能Lua代碼的方法,本文是基于Lua語言的創(chuàng)造者Roberto Ierusalimschy的一篇文章翻譯改寫而來,需要的朋友可以參考下
    2014-10-10
  • 理解Lua中的__index和__newindex

    理解Lua中的__index和__newindex

    這篇文章主要介紹了理解Lua中的__index和__newindex,本文給出了三段代碼來講解__index和__newindex,代碼中包含詳細注釋,需要的朋友可以參考下
    2015-04-04
  • Lua的迭代器使用中應該避免的問題和技巧

    Lua的迭代器使用中應該避免的問題和技巧

    這篇文章主要介紹了Lua的迭代器使用中應該避免的問題和技巧,本文介紹了避免創(chuàng)建閉合函數(shù)、利用恒定狀態(tài)創(chuàng)造更多變量、不需要for循環(huán)的迭代器等內(nèi)容,需要的朋友可以參考下
    2014-09-09

最新評論

柳林县| 曲阜市| 保亭| 开封县| 桐柏县| 清流县| 锡林郭勒盟| 马尔康县| 独山县| 安康市| 乐业县| 常山县| 新龙县| 犍为县| 石狮市| 柞水县| 浦北县| 农安县| 荔波县| 大庆市| 镇远县| 金寨县| 赤峰市| 屯昌县| 温州市| 库车县| 明光市| 当雄县| 崇礼县| 辽宁省| 新密市| 邻水| 渭南市| 平湖市| 商水县| 武胜县| 吉木萨尔县| 通州区| 上栗县| 岱山县| 岱山县|