(摘) golang库:Yaegi

声明:内容源自网络,版权归原作者所有。若有侵权请在网页聊天中联系我

Github

Yaegi 是一个优雅的 Go 语言解释器,可以执行 Go 脚本和插件。

package main

import "github.com/traefik/yaegi/interp"

const src = `package foo
func Bar(s string) string { return s + "-Foo" }`

func main() {
	i := interp.New(interp.Options{})

	_, err := i.Eval(src)
	if err != nil {
		panic(err)
	}

	v, err := i.Eval("foo.Bar")
	if err != nil {
		panic(err)
	}

	bar := v.Interface().(func(string) string)

	r := bar("Kung")
	println(r)
}

应用:将go代码作为源文本保存,让已生成二进制的程序调用。