我需要动态执行代码,例如运行fmt.Print("hello") (字符串格式),也许我正在寻找的是go虚拟机?
使用go-playground,我们可以输入代码并执行它,这在后面是如何工作的?
最糟糕的解决方案是将字符串代码写到一个文件中,然后用exec.Command("go", "run","file")调用它。
发布于 2019-09-06 05:20:14
1.游乐场
使用go-playground,我们可以输入代码并执行它,它是如何工作的?
我想你回答了大部分你自己的问题。
从游乐场找到compileAndRun的源码并不需要很长时间。
最糟糕的解决方案是将字符串代码写到一个文件中,然后用exec.Command("go",“
”," file ")调用它。
是的,它使用:https://github.com/golang/playground/blob/509e10fc018f6da63e433d45afbf5c21af9480a2/sandbox.go#L361
cmd := exec.Command("go", "build", "-o", exe, buildPkgArg)2. Jupyter核、gore、lgo、gophernotes和gomacro
尽管这并不意味着它必须总是这样。
我自己打算在业余时间调查一下:
的软件包。
总而言之:它不像其他语言中的eval那么简单,但没有什么能阻止它的实现。
祝好运!
https://stackoverflow.com/questions/57786121
复制相似问题