Lua学习(一):lua与luaJit简介

一、什么是lua&luaJit

lua(www.lua.org)其实就是为了嵌入其它应用程序而开发的一个脚本语言,luajit(www.luajit.org)是lua的一个Just-In-Time也就是运行时编译器,也可以说是lua的一个高效版。

二、优势

1)lua是一个免费、小巧、简单、强大、高效、轻量级的嵌入式的脚本语言,lua当前的发行版本5.3.1只有276k。

2)它是用C语言开发的项目,所以可以在大部分的操作系统上运行

3)lua是目前速度最快的脚本语言,既可以提升语言的灵活性还可以最大限度的保留速度

4)其语法非常简单,没有特例

5)lua还可以作为C的API来使用

三、不足和不同

1)lua没有强大的库,所以很多功能实现起来没有python、perl、ruby等脚本语言简洁

2)lua的异常处理功能饱受争议,虽然其提供了pcall和xpcall的异常处理函数

3)lua原生语言中没有提供对unicode编码的支持,虽然可以通过一些折中的办法实现 http://www.cppblog.com/darkdestiny/archive/2009/04/25/81055.html

4)没有提供在C++中应用很广泛的a?b:c的三元运算符操作

5)没有switch...case...语法,只能通过if..elseif..elseif..else..end的方式折中实现

6)在循环时没有提供continue语法

7)没有C++中应用广泛的a++和a+=1等操作

8)lua的索引是从1开始的,而不是我们熟悉的0(string,table)

9)当你给一个元素赋值为nil时相当于这个元素不存在

10)lua的数值类型只有number是没有int,float,double等之分的

11)lua中没有类的概念,其类是通过table的形式来实现的

12)lua中只有nil和false是表示假的,零在lua中是为真的

13)很多程序需要()标示才能运行,比如a={["b"]=5},print(a.b)是可运行的,但是 {["b"]=5}.b就会报错,需要({["b"]=5}).b才可以

四、综述

综上,lua是一个简单,高效所以在游戏逻辑开发和服务器开发中(ngx_lua)得到广泛的应用。

你可能感兴趣的:(Lua)