- 授权协议: LGPL
- 开发语言: Lua Google Go
- 操作系统: Linux
- 软件首页: http://code.google.com/p/glua/
- 软件文档: http://code.google.com/p/glua/wiki/UseSample
软件介绍
自己写的一个go lua binding,为了使用方便,并没有封装很多lua api,只是是为了实现以下功能的简单封装:
- 可以将go函数注册到lua中去,扩展lua的函数库,参数自动转换,支持不定参数
- 可以同时执行多个lua脚本
- 从go中嗲用lua中的函数
- 支持bool、int、float、string类型的相互转换,其他类型可以传递到lua中,但是只能传回go中使用
这个binding很简单,下面的例子已经把所有能调用的API都调用了一遍:)
package main
import (
"fmt"
"glua"
)
type Int struct {
I int
}
func NewInt() *Int {
return &Int{10}
}
func (i Int) PrintInt(str string) {
fmt.Println(str, i.I)
}
func main() {
L := glua.NewState()
L.Openlibs()
var tlib = glua.Libfuncs{
"gotest", // lib name
map[string]interface{}{
"NewInt": NewInt, // lua function name, go function
"PrintInt": (*Int).PrintInt,
"goprintln": fmt.Println, // 不定参数函数
},
}
if ok, err := L.Register(&tlib); !ok {
fmt.Println(err.Error())
return
}
// 执行lua语句
L.Dostring(`gotest.PrintInt(gotest.NewInt(), "Int is")`)
// 执行lua脚本
L.Dofile("test.lua")
// 调用lua函数
L.Call("gotest.goprintln", "Call lua function.", 123456)
}
lua脚本
--test.lua gotest.goprintln(true, 123, "lua", gotest.NewInt())
如果使用上有什么问题,请直接给我反馈,谢谢!
黑客简史:棱镜中的帝国
刘创 / 电子工业出版社 / 2015-1 / 39.80元
“黑客”,伴随着计算机和互联网而诞生,他们掌握着前沿的计算机和网络技术,能够发现并利用计算机系统和网络的弱点,他们的行为动机多样,因此我们必须对这一群体进行分解,认识他们及其技术的两面性——“黑客”中那些不断拓展技术边界、富于创造力的,和那些掌握技术、却利欲熏心的,就像硬币的两面,谁都无法清晰地辨别是非。相对于主流文化,黑客的行为方式和理念等形成了一种“亚文化”,与主流文化相互作用。一起来看看 《黑客简史:棱镜中的帝国》 这本书的介绍吧!
