Go提供REPL吗?

时间:2011-12-15 00:21:58

标签: go read-eval-print-loop

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

12 个答案:

答案 0 :(得分:142)

不,Go不提供REPL。

但是,正如已经提到的,Go Playground(这是新的URL)非常方便。 Go Authors也在考虑为其添加功能丰富的编辑器。

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

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

我还看到了为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直接运行程序

更新3 gore是一个看似有趣的新项目。

答案 1 :(得分:42)

尝试motemen / gore

  

另一个Go REPL很好用。精选线编辑,   代码完成等等。

https://github.com/motemen/gore

enter image description here

答案 2 :(得分:8)

您最近(2013年3月)的项目名为 gore 来自Sriram Srinivasan,这可能非常有用:

  

gore是golang代码的命令行评估程序 - 没有循环的REPL,如果你愿意的话   它是go操场的替代品,同时更容易交互式地尝试一些代码: gore自动提供锅炉板代码,例如导入和包装声明以及主函数包装器。 />   此外,由于它在您自己的计算机上运行,​​因此在安全方面不会拒绝任何代码(与操场的安全沙盒模式不同)。

答案 3 :(得分:7)

您是否尝试过Go Playground

  

关于Go Playground

     

Go Playground是一个在golang.org服务器上运行的Web服务。   该服务接收Go程序,编译,链接和运行   程序在沙箱中,然后返回输出。

答案 4 :(得分:4)

如果你是Vim用户,vim-go插件(https://github.com/fatih/vim-go)提供一个命令(GoRun)来运行并打印当前缓冲区的输出。您仍然必须包含主Go文件的所有样板代码,但它仍然提供了一种在本地环境中快速测试代码段的便捷方法。

enter image description here

HTH

答案 5 :(得分:3)

GoSpeccy项目包含一个受限制的Go语言子集的内置REPLY。该实现使用goeval

答案 6 :(得分:2)

不,但您可以利用编译速度(如其他答案中所述)。

查看使用generate-compile-run循环模拟REPL的rango。您也可以使用导入和语句启动它以开始交互式会话。

答案 7 :(得分:1)

Gosh 是交互式Golang shell。目标是提供易于使用的交互式执行环境。

https://github.com/mkouhei/gosh

答案 8 :(得分:1)

我在VSCode调试器上运气不错,但由于无法从调试控制台Debug: Function Calls not supported #2225调用函数调用,它受到了相当大的限制。

基本上,您在正确配置{{1}}文件之后设置了一个断点。然后,您可以在变量侧栏中的左侧向下钻取,并在调试控制台中输入变量表达式。 Debugging go file in VSCode to introspect through debugger

答案 9 :(得分:0)

您可能还想尝试https://github.com/haya14busa/goplay 这样一来,您就可以从终端直接将Go代码文件运行到Go Playground

答案 10 :(得分:0)

还请检查www.gorepl.com中是否有REPL和其他REPL

答案 11 :(得分:0)

可以在具有Go扩展名和Code Runner扩展名的Visual Studio Code中以类似于REPL的方式运行Go代码。单击下面的屏幕快照中用鼠标光标标记的Run三角形▶,以运行代码并在Visual Studio Code底部的“输出”窗格中显示结果。

使用Go Visual Studio Code编程时,将建议可以安装其他Go扩展名以扩展Visual Studio Code的功能。

Go running in Visual Studio Code