关于lua的一些特性

时间:2022-08-29 21:35:09
  • 轻量级: 它用标准C语言编写并以源代码形式开放,编译后仅仅一百余K,可以很方便的嵌入别的程序里。
  • 可扩展: Lua提供了非常易于使用的扩展接口和机制:由宿主语言(通常是C或C++)提供这些功能,Lua可以使用它们,就像是本来就内置的功能一样。
  • 其它特性:
    • 支持面向过程(procedure-oriented)编程和函数式编程(functional programming);
    • 自动内存管理;只提供了一种通用类型的表(table),用它可以实现数组,哈希表,集合,对象;
    • 语言内置模式匹配;闭包(closure);函数也可以看做一个值;提供多线程(协同进程,并非操作系统所支持的线程)支持;
    • 通过闭包和table可以很方便地支持面向对象编程所需要的一些关键机制,比如数据抽象,虚函数,继承和重载等。

 

Lua 最大的好处就是小,绝对的小,可以嵌入任何程序而我们几乎可以忽略为此增加的大小。这门语言的功能基本是完备的。作为配置文件可以达成非常复杂的配置逻辑。看看 WoW 的各种插件和宏就知道了。

 

C\C++的绝好伴侣,C\C++是静态编译型语言,Lua是动态解释型语言.当然,要做到动态也不是不行,C++可以用模板,C可以用宏,但是大量使用这些特性的项目代码是不能看的...

所以,C\C++ + Lua = 性能 + 动态性. 一边是性能,一边是灵活.

当前可以看到这部分用的最好的例子,ngx_lua,迅雷的blot界面引擎,WOW的脚本引擎,应该还有其他,涉猎不光不知道的更多了.
 
Lua和C++混合编程  
容易和C/C++交互,内核小巧,极易嵌入到其他程序,可当做一种配置语言
经常用于游戏开发中,魔兽世界,愤怒的小鸟都有用到