有没有办法在Go?
中在应用程序的上下文中访问交互式REPL控制台供参考,我考虑Ruby's irb或pry(以及扩展名为Ruby On Rails console的功能)Node.js REPL },Scala REPL(和Play console)或Elixir's IEx。所有这些都是开发(或生产!)工具,用于在应用程序的上下文中打开REPL。例如,它们允许访问应用程序的类,对象和常量,并通过扩展来与应用程序的资源(例如数据库)进行交互。
有一些Go REPL,例如gore,但它不清楚如何将它们插入应用程序。
我想可以启动一个gore
会话然后导入所有包,但是main
中发生的初始化怎么办?
我的直觉告诉我应该有一种方法可以提供另一种选择"仅限REPL" main
编译一个不同的二进制文件,将应用程序作为REPL启动 - 而不是像HTTP服务器那样。
有没有既定方法可以这样做?还是参考实现?
答案 0 :(得分:0)
您可以尝试go-pry
:https://github.com/d4l3k/go-pry
这非常接近rails控制台。只需在文件中import "github.com/d4l3k/go-pry/pry"
添加pry.Pry()
即可开始会话。之后,您只需拨打go-pry main.go
而不是go main.go
。
但据我所知,没有标准的解决方案。