我需要动态执行代码,例如运行fmt.Print("hello")
(以字符串格式),也许我正在寻找的是go虚拟机?
在go-playground中,我们可以键入代码并执行它,它如何在后面工作?
最糟糕的解决方案是将字符串代码写入文件并使用exec.Command("go", "run","file")
进行调用。
答案 0 :(得分:0)
在go-playground中,我们可以键入代码并执行它,它如何在后面工作?
我想您大部分都回答了owm问题。
从操场上找到compileAndRun的来源很快。
最糟糕的解决方案是将字符串代码写入文件,然后使用exec.Command(“ go”,“ run”,“ file”)进行调用。
是的,它使用: https://github.com/golang/playground/blob/509e10fc018f6da63e433d45afbf5c21af9480a2/sandbox.go#L361
cmd := exec.Command("go", "build", "-o", exe, buildPkgArg)
尽管这并不意味着它必须总是这样。
我本人计划将业余时间用于:
总体:在其他语言中,这不像eval
那样容易,但是没有什么可以停止实现了。
祝你好运!