一、什么是lua&luaJit
lua(www.lua.org)其實就是為了嵌入其它應(yīng)用程序而開發(fā)的一個腳本語言,luajit(www.luajit.org)是lua的一個Just-In-Time也就是運行時編譯器,也可以說是lua的一個高效版。
二、優(yōu)勢
- lua是一個免費、小巧、簡單、強大、高效、輕量級的嵌入式的腳本語言,lua當(dāng)前的發(fā)行版本5.3.1只有276k
- 它是用C語言開發(fā)的項目,所以可以在大部分的操作系統(tǒng)上運行
- lua是目前速度最快的腳本語言,既可以提升語言的靈活性還可以最大限度的保留速度
- 其語法非常簡單,沒有特例
- lua還可以作為C的API來使用
三、不足和不同
- lua沒有強大的庫,所以很多功能實現(xiàn)起來沒有python、perl、ruby等腳本語言簡潔
- lua的異常處理功能飽受爭議,雖然其提供了pcall和xpcall的異常處理函數(shù)
- lua原生語言中沒有提供對unicode編碼的支持,雖然可以通過一些折中的辦法實現(xiàn)
- 沒有提供在C++中應(yīng)用很廣泛的a?b:c的三元運算符操作
- 沒有switch...case...語法,只能通過if..elseif..elseif..else..end的方式折中實現(xiàn)
- 在循環(huán)時沒有提供continue語法
- 沒有C++中應(yīng)用廣泛的a++和a+=1等操作
- lua的索引是從1開始的,而不是我們熟悉的0(string,table)
- 當(dāng)你給一個元素賦值為nil時相當(dāng)于這個元素不存在
- lua的數(shù)值類型只有number是沒有int,float,double等之分的
- lua中沒有類的概念,其類是通過table的形式來實現(xiàn)的
- lua中只有nil和false是表示假的,零在lua中是為真的
- 很多程序需要()標示才能運行,比如a={["b"]=5},print(a.b)是可運行的,但是 {["b"]=5}.b就會報錯,需要({["b"]=5}).b才可以
四、綜述
綜上,lua是一個簡單,高效所以在游戲邏輯開發(fā)和服務(wù)器開發(fā)中(ngx_lua)得到廣泛的應(yīng)用。
更多建議: