Lua入門學習筆記_Lua

來源:互聯網
上載者:User

最近在使用Cocos2d-x + Lua來開發遊戲。 遊戲的主要邏輯將在Lua裡寫,之前沒有接觸過Lua,以下是我總結的入門筆記。

運算子

邏輯運算子

與:and
或:or
非:not

邏輯判斷只有在false和nil時為假,其餘均為真。 or和and會返回第一個斷路的值。

Lua中沒有C語言的三元符(x ? a : b),但有一個替代方案(x and a) or b。
需要注意的是,以上方案在x為true,a為false,b為true的情況下與三元符的結果是相反的。

關係運算子

不等於:~=
類型和值均相等:==
只有數字和字串類型在比較時判定的是值,其餘資料類型比較的都是引用。

其他運算子

字串的串連符:..
兩字串若用+串連時,會被自動轉義成數字類型進行相加,這是由metatable裡的add運算決定的。

長度運算子:# 可計算字串和table的長度。

冒號運算子: :是Lua的一個文法糖,其省去了方法的self參數聲明和方法的顯式調用。 詳見:http://www.lua.org/pil/16.html。

table

table可視為數組,數組下標不同於其他大多數語言,其下標從1開始。

#運算子僅統計所有下標為整數的元素的個數。

與pairs不同的是,ipairs僅遍曆從1開始的連續下標,並且保證輸出順序。

t[2] 和 t["2"]表示不同的記錄

複製代碼 代碼如下:

t={["2"]=2, [2]=2.2,}

table最後可以多留一個分隔字元(,或;),參照上一條的t,官方的理由是為了自動產生table的方便(便於自動產生Lua的table配置表)。

複製代碼 代碼如下:

x = 1
t = { x=1.1, [x]=1 }

第一個表示

複製代碼 代碼如下:

t["x"] = 1.1

第二個表示

複製代碼 代碼如下:

t[1] = 1

metatable

metatable的類型是table。 metatable裡的key是事件(操作)類型。 metatable裡的value是對應的函數(方法),也稱之為metamethod。

控制流程

return和break語句只能被寫在語句塊的最後一句,即end前。

for 迴圈的迴圈變數是一個內部變數,迴圈結束之後,就不能再使用它了。

sublime text 2編譯

我平時用Sublime Text 2來編寫Lua指令碼,其編譯Lua的設定如下: 產生Lua.sublime-build檔案於C:\Users\YOUR_USER_NAME\AppData\Roaming\Sublime Text 2\Packages\Lua目錄下,檔案內容為

複製代碼 代碼如下:

{
    "cmd": ["lua", "$file"],
    "file_regex": "^(?:lua:)?[\t ](...*?):([0-9]*):?([0-9]*)",
    "selector": "source.lua"
}

設定好後,用 ctrl + B 即可編譯運行。 以上為pc上的配置。

在mac上需要先編譯安裝Lua

複製代碼 代碼如下:

curl -R -O http://www.lua.org/ftp/lua-5.2.2.tar.gz
tar zxf lua-5.2.2.tar.gz
cd lua-5.2.2
make macosx test
sudo make install

然後在sublime text tools -> build system -> new build system建立一個Lua.sublime-build,內容為

複製代碼 代碼如下:
{ 
 "cmd": ["/usr/local/bin/lua", "$file"], 
 "file_regex": "^(...*?):([0-9]*):?([0-9]*)", 
 "selector": "source.lua" 
}

即可在mac的sublime text上用 ⌘ + B 編譯Lua。

其他

Lua語句後的分號;可有可無。

變數聲明時儘可能的使用local進行聲明,除非有作為全域變數的必要。

為參數列表,在函數中以arg(類型為table)進行擷取 arg還有一個額外的鍵n,用來表示參數的個數。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.