Go 提供 REPL 吗?

新手上路,请多包涵

交互式环境对程序员非常有帮助。但是,似乎 Go 没有提供它。我的理解正确吗?

原文由 z_axis 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 644
2 个回答

不,Go 不提供 REPL (read-eval-print 循环)。

然而,正如已经提到的, Go Playground 非常方便。 Go 的作者也在考虑为它添加一个功能丰富的编辑器。

如果您想要本地的东西,请考虑安装 hsandbox 。只需使用 hsandbox go 运行它就会拆分您的终端屏幕(使用 screen ),您可以在其中编写代码并在每次保存时在底部查看其执行输出。

在标准 Go 命令中有一个 gotry 用于评估表达式(带有可选的包名称),并且可以像 gotry 1+2gotry fmt 'Println("hello")' 47dbee 一样运行.它不再可用,因为实际使用它的人并不多。

我还看到了为 Go 构建 REPL 的第三方项目,但现在我只能找到其中两个的链接: igogo-repl 。我不知道他们的工作情况如何。

我的两分钱:编译速度使得为 Go 编写 REPL 成为可能,因为它也有助于构建这里提到的工具,但同样的速度使得 REPL 变得不那么必要了。每次我想在 Go 中测试一些我无法在 Playground 中运行的东西时,我都会打开一个简单的 .go 文件并开始编码并运行代码。当 Go 1 中的 go 命令使单命令构建过程成为可能并且更容易时,这将变得更加容易。

更新: Go 的最新每周版本添加了 go 命令,可用于非常轻松地构建文件:编写你的 prog.go 文件并运行 go build prog.go && ./prog

更新 2 :使用 Go 1,您可以直接使用 go run filename.go 运行 go 程序

更新 3gore 是一个看起来很有趣的新项目。

原文由 Mostafa 发布,翻译遵循 CC BY-SA 4.0 许可协议

试试 motemen/gore

另一个运行良好的 Go REPL。具有行编辑、代码完成等功能。

https://github.com/motemen/gore

在此处输入图像描述

原文由 Bijan 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
logo
Stack Overflow 翻译
子站问答
访问
宣传栏