在Go中应用的上下文中的REPL控制台

时间:2018-04-25 00:33:46

标签: go

有没有办法在Go?

中在应用程序的上下文中访问交互式REPL控制台

供参考,我考虑Ruby's irbpry(以及扩展名为Ruby On Rails console的功能)Node.js REPL },Scala REPL(和Play console)或Elixir's IEx。所有这些都是开发(或生产!)工具,用于在应用程序的上下文中打开REPL。例如,它们允许访问应用程序的类,对象和常量,并通过扩展来与应用程序的资源(例如数据库)进行交互。

有一些Go REPL,例如gore,但它不清楚如何将它们插入应用程序。

我想可以启动一个gore会话然后导入所有包,但是main中发生的初始化怎么办?

我的直觉告诉我应该有一种方法可以提供另一种选择"仅限REPL" main编译一个不同的二进制文件,将应用程序作为REPL启动 - 而不是像HTTP服务器那样。

有没有既定方法可以这样做?还是参考实现?

1 个答案:

答案 0 :(得分:0)

您可以尝试go-pryhttps://github.com/d4l3k/go-pry

这非常接近rails控制台。只需在文件中import "github.com/d4l3k/go-pry/pry"添加pry.Pry()即可开始会话。之后,您只需拨打go-pry main.go而不是go main.go

但据我所知,没有标准的解决方案。