【发布时间】:2019-09-04 10:05:29
【问题描述】:
我需要动态执行代码,例如运行fmt.Print("hello")(字符串格式),也许我正在寻找的是一个go虚拟机?
使用 go-playground,我们可以输入代码并执行,后面是如何工作的?
最糟糕的解决方案是将字符串代码写入文件并使用exec.Command("go", "run","file") 调用它。
【问题讨论】:
-
This answer 部分回答了您的问题。
-
您的“最糟糕的解决方案”正是 Go 游乐场所做的,因为它基本上是唯一 的方法。对于简单的事情,Go 解释器可能适合您的需要(谷歌“golang 解释器”并选择任何一个)。在标准库中没有直接“评估”Go 代码的方法。
-
Go 是一种编译语言,而不是解释语言。没有原生支持将任意字符串作为 Go 代码执行;使用标准 SDK 执行任何 Go 代码都需要将其写入文件,将其编译为二进制文件,然后执行该二进制文件。
-
嗨@seaguest,你看过github.com/containous/yaegi吗?
标签: go