Go的内嵌脚本语言有很多,Python语言就是一例。Python有丰富的用户群体,强大的第三方库,广泛的开源工具支持,Go的最佳伴侣应该是Python,可是Python的一些不足之处却让Go感到为难。最好用的开源的go-python库是全局单例的Python解释器,对于并发能力比较出色的Go语言来说,万恶的GIL会让Go运行时降级为单线程,很容易就成了运行的瓶颈。
看来Python这条路是走不下去了,幸好,还有Lua。
Lua作为专业的内置脚本语言,它是单线程的运行的,没有操作系统级别的多线程,同一个进程可以运行多个Lua解释器实例,数据完全独立,互不干扰。它的学习成本比Python还要低廉,普通用户大约花个30分钟就可以把Lua语言的基本特性都学完了。
Lua目前最好的golang开源项目是日本人实现的,叫GopherLua。
yuin/gopher-lua
接下来我们逐步研究一下GopherLua如何使用,首先写一个HelloWorld
package main
import lua "github.com/yuin/gopher-lua"
func main() {
L := lua.NewState() // 创建一个lua解释器实例
defer L.Close