首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Go App可以动态编译Go代码吗?

Go App可以动态编译Go代码吗?
EN

Stack Overflow用户
提问于 2017-03-30 20:57:26
回答 2查看 2.3K关注 0票数 0

假设我有一个Lua程序,它接受用户输入,而用户输入恰好是有效的Lua源代码。当程序仍在运行时,会对其进行清理、编译和执行。这样的事情在Go中可能(或将会)吗?

EN

回答 2

Stack Overflow用户

发布于 2017-03-31 18:26:59

我认为以下两个项目之间有足够的内容来帮助我实现我想要的。这两种方法都不是完美的临时替代方法,但都可以进行扩展,以提供与我最初在Lua中使用动态编译所做的足够接近的服务。

https://github.com/Knetic/govaluate

https://github.com/japm/goScript

票数 1
EN

Stack Overflow用户

发布于 2017-03-30 23:37:40

我有一个关于如何做到这一点的想法,但在C语言中,你几乎必须这样做。

Go是一种编译语言,因此为了实现您想要实现的功能,您需要在CSP上编写一个包装器,该包装器将支持二进制文件的版本控制和某种RPC上的导出功能。具体步骤如下:

  1. 本地尝试构建Go代码并启动结果
  2. 新程序连接到当前正在运行的程序的RPC
  3. 指示第一个程序将所有CSP数据(通道、goroutine调度)指向新的运行时
  4. 外部接口切换到新程序,在旧程序端的所有goroutines之后,终止旧进程

显然,这非常复杂,您可以通过Ottogo-lua等脚本语言来节省大量时间。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43118566

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档