以前要想在Go里用 LUA, 有两条路:
1)自己封装 systemcall,调用 lua.dll
2) 使用 cgo 自己编译 LUA 的源代码
方法1复杂麻烦不通用不优雅,方法2对Windows用户满是泪呀
现在终于好了, 有了方法3)Lua 虚拟机和编译器:GopherLua
基本就是 将LUA 的源代码,用go重新写了一遍, 据说实际试表明 GopherLua 的性能是其他同类实现的 20 倍。
我从 github 上下载了代码测试,果然太爽了!
这个才是 golang 的技术社区呢!!!
Lua 是一个小巧的脚本语言。是巴西里约热内卢天主教大学(Pontifical Catholic University of Rio de Janeiro)里的一个研究小组,由Roberto Ierusalimschy、Waldemar Celes 和 Luiz Henrique de Figueiredo所组成并于1993年开发。 其设计目的是为了嵌入应用程序中,从而为应用程序提供灵活的扩展和定制功能。Lua由标准C编写而成,几乎在所有操作系统和平台上都可以编译,运行。Lua并没有提供强大的库,这是由它的定位决定的。所以Lua不适合作为开发独立应用程序的语言。Lua 有一个同时进行的JIT项目,提供在特定平台上的即时编译功能。[1]
Lua脚本可以很容易的被C/C++ 代码调用,也可以反过来调用C/C++的函数,这使得Lua在应用程序中可以被广泛应用。不仅仅作为扩展脚本,也可以作为普通的配置文件,代替XML,ini等文件格式,并且更容易理解和维护。[2] Lua由标准C编写而成,代码简洁优美,几乎在所有操作系统和平台上都可以编译,运行。[2] 一个完整的Lua解释器不过200k,在目前所有脚本引擎中,Lua的速度是最快的。这一切都决定了Lua是作为嵌入式脚本的最佳选择。
#3
更多评论