源代码地址:
https://github.com/rocket049/pluginloader
用于简化调用 plugin 内的函数。
内容
type PluginLoader struct {
...
}
func (p *PluginLoader) Call(funcName string, p0 ...interface{}) (interface{}, error)
用法:
import "github.com/rocket049/pluginloader"
p, err := pluginloader.NewPluginLoader( "path_to_plugin" )
if err != nil {
panic(err)
}
res, err := p.Call("NameOfFunc", p0,p1,p3,...)
注意:
被调用的函数可以无返回值,也可以返回1个返回值,或者1个返回值跟1个error
。
被 Call
的函数返回值格式只能是: ResType
或 (ResType, error)
-- ResType
可以是任何类型。
当只有0个或1个返回值时,Call
返回的 error
始终是 nil
。
有疑问加站长微信联系(非本文作者)
