假设我有一个Lua程序,它接受用户输入,而用户输入恰好是有效的Lua源代码。当程序仍在运行时,会对其进行清理、编译和执行。这样的事情在Go中可能(或将会)吗?
发布于 2017-03-31 18:26:59
我认为以下两个项目之间有足够的内容来帮助我实现我想要的。这两种方法都不是完美的临时替代方法,但都可以进行扩展,以提供与我最初在Lua中使用动态编译所做的足够接近的服务。
https://github.com/Knetic/govaluate
https://github.com/japm/goScript
发布于 2017-03-30 23:37:40
我有一个关于如何做到这一点的想法,但在C语言中,你几乎必须这样做。
Go是一种编译语言,因此为了实现您想要实现的功能,您需要在CSP上编写一个包装器,该包装器将支持二进制文件的版本控制和某种RPC上的导出功能。具体步骤如下:
显然,这非常复杂,您可以通过Otto或go-lua等脚本语言来节省大量时间。
https://stackoverflow.com/questions/43118566
相似问题