10. LuaJIT 介紹

2020-07-27 09:36 更新

一、什么是lua&luaJit

lua(www.lua.org)其實就是為了嵌入其它應(yīng)用程序而開發(fā)的一個腳本語言,luajit(www.luajit.org)是lua的一個Just-In-Time也就是運行時編譯器,也可以說是lua的一個高效版。

二、優(yōu)勢

  1. lua是一個免費、小巧、簡單、強大、高效、輕量級的嵌入式的腳本語言,lua當(dāng)前的發(fā)行版本5.3.1只有276k
  2. 它是用C語言開發(fā)的項目,所以可以在大部分的操作系統(tǒng)上運行
  3. lua是目前速度最快的腳本語言,既可以提升語言的靈活性還可以最大限度的保留速度
  4. 其語法非常簡單,沒有特例
  5. lua還可以作為C的API來使用

三、不足和不同

  1. lua沒有強大的庫,所以很多功能實現(xiàn)起來沒有python、perl、ruby等腳本語言簡潔
  2. lua的異常處理功能飽受爭議,雖然其提供了pcall和xpcall的異常處理函數(shù)
  3. lua原生語言中沒有提供對unicode編碼的支持,雖然可以通過一些折中的辦法實現(xiàn)
  4. 沒有提供在C++中應(yīng)用很廣泛的a?b:c的三元運算符操作
  5. 沒有switch...case...語法,只能通過if..elseif..elseif..else..end的方式折中實現(xiàn)
  6. 在循環(huán)時沒有提供continue語法
  7. 沒有C++中應(yīng)用廣泛的a++和a+=1等操作
  8. lua的索引是從1開始的,而不是我們熟悉的0(string,table)
  9. 當(dāng)你給一個元素賦值為nil時相當(dāng)于這個元素不存在
  10. lua的數(shù)值類型只有number是沒有int,float,double等之分的
  11. lua中沒有類的概念,其類是通過table的形式來實現(xiàn)的
  12. lua中只有nil和false是表示假的,零在lua中是為真的
  13. 很多程序需要()標示才能運行,比如a={["b"]=5},print(a.b)是可運行的,但是 {["b"]=5}.b就會報錯,需要({["b"]=5}).b才可以

四、綜述

綜上,lua是一個簡單,高效所以在游戲邏輯開發(fā)和服務(wù)器開發(fā)中(ngx_lua)得到廣泛的應(yīng)用。


以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號