https://github.com/yuin/gopher-luahttps://github.com/yuin/gopher-lua
Lua 5.1 Reference Manual - contentshttp://www.lua.org/manual/5.1/
Extending Lua with Go types – Marin Atanasov Nikolov – A place about Open Source Software, Operating Systems and some random thoughtshttp://dnaeon.github.io/extending-lua-with-go-types/
go 中使用 lua
package mainimport (lua "github.com/yuin/gopher-lua"
)func main() {l := lua.NewState()defer l.Close()if err := l.DoString(`print("Hello World")`); err != nil {panic(err)}
}
L := lua.NewState()
defer L.Close()
if err := L.DoFile("hello.lua"); err != nil {panic(err)
}
lua 中使用 go
mymodule.go
package mymoduleimport ("github.com/yuin/gopher-lua"
)func Loader(L *lua.LState) int {// register functions to the tablemod := L.SetFuncs(L.NewTable(), exports)// register other stuffL.SetField(mod, "name", lua.LString("value"))// returns the moduleL.Push(mod)return 1
}var exports = map[string]lua.LGFunction{"myfunc": myfunc,
}func myfunc(L *lua.LState) int {return 0
}
mymain.go
package mainimport ("./mymodule""github.com/yuin/gopher-lua"
)func main() {L := lua.NewState()defer L.Close()L.PreloadModule("mymodule", mymodule.Loader)if err := L.DoFile("main.lua"); err != nil {panic(err)}
}
main.lua
local m = require("mymodule")
m.myfunc()
print(m.name)