如何在go程序中将字符串作为go代码进行求值?
对于任何go程序,我都希望将任何代码转换为字符串并对字符串求值如何在go程序中将字符串作为go代码进行求值?,go,Go,对于任何go程序,我都希望将任何代码转换为字符串并对字符串求值 func main() { x := 10 fmt.Println(x) } 例如,对于上面的程序,我希望按如下方式运行它(我不确定Eval应该是什么)。有人能告诉我在go程序中使用eval()go代码的方法吗 func main() { x := 10 Eval("fmt.Println(x)") } 它不是内置于语言中的,但您可以使用 但是我认为它不能访问父作用域(因此获取x的值可能很棘手)G
func main() {
x := 10
fmt.Println(x)
}
例如,对于上面的程序,我希望按如下方式运行它(我不确定Eval
应该是什么)。有人能告诉我在go程序中使用eval()go代码的方法吗
func main() {
x := 10
Eval("fmt.Println(x)")
}
它不是内置于语言中的,但您可以使用
但是我认为它不能访问父作用域(因此获取
x
的值可能很棘手)Go没有代码评估功能。如何安装interp
和stdlib
来测试您的程序?谢谢
package main
import (
"github.com/containous/yaegi/interp"
"github.com/containous/yaegi/stdlib"
)
func main() {
i := interp.New(interp.Options{})
i.Use(stdlib.Symbols)
_, err := i.Eval(`import "fmt"`)
if err != nil {
panic(err)
}
_, err = i.Eval(`fmt.Println("Hello Yaegi")`)
if err != nil {
panic(err)
}
}