gpt4 book ai didi

go - 如何在 go 程序中将字符串评估为 go 代码?

转载 作者:行者123 更新时间:2023-12-01 22:33:54 27 4
gpt4 key购买 nike

这个问题在这里已经有了答案:





Evaluate/Execute Golang code/expressions like js' eval()

(5 个回答)


1年前关闭。




对于任何 go 程序,我想将任何代码转换为字符串并评估字符串。

func main() {
x := 10
fmt.Println(x)
}

例如,对于上面的程序,我想像下面这样运行它(我不确定 Eval 应该是什么)。谁能告诉我在 go 程序中 eval() go 代码的方法是什么?
func main() {
x := 10
Eval("fmt.Println(x)")
}

最佳答案

它不是语言内置的,但您可以使用 https://github.com/containous/yaegi

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)
}
}

但我认为它无法访问父范围(因此获取 x 的值可能会很棘手)

关于go - 如何在 go 程序中将字符串评估为 go 代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62419372/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com