在 Go 中运行用户提交的代码

我正在开发一个应用程序,它允许用户比较不同字符串比较算法的执行情况。除了包含的几种算法(包括Boyer-MooreKMP和其他“传统”算法)之外,我还希望允许用户放入他们自己的算法(这些可以是他们自己的算法或对现有算法的修改)以比较它们。

Go 中有没有办法从用户那里获取代码(例如,从 HTML 文本区域)并执行它?

更具体地说,我想要以下特征:

  • 我提供了一个方法签名,他们在方法中填写他们想要的任何内容。

  • 他们的代码中的崩溃或语法错误不应导致我的整个程序崩溃。相反,它应该允许我捕获错误并显示错误消息。

(在这种情况下,我不担心针对恶意代码的安全性,因为用户只会在他们自己的机器上执行我的程序,所以安全是他们自己的责任。)

如果无法使用 Go 本地执行此操作,我愿意嵌入以下语言之一以用于比较函数(按优先顺序):JavaScript、Python、Ruby、C。有什么方法可以做任何事情吗?那些?


慕容3067478
浏览 161回答 0
0回答
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go