Go提供REPL吗?

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

如前所述, Go Playground (这是新的URL)非常方便。 Go作者也在考虑添加一个function丰富的编辑器。

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

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

我也看到第三方项目为build立一个REPL的去,但现在我只能find两个链接: igo和go-repl 。 他们工作得如何,我不知道。

但要真正回答你的主要问题:不,Go不提供REPL。

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

更新: Go的最新每周版本添加go可用于非常容易地build立一个文件的go命令:编写你的prog.go文件并运行go build prog.go && ./prog

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

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

尝试motemen /戈尔

还有另一个Go REPL很好用。 特色与行编辑,代码完成,等等。

https://github.com/motemen/gore

在这里输入图像说明

你也有一个最近的(2013年3月)来自Sriram Srinivasan的叫做gore的项目,

gore是golang代码的命令行评估程序 – 如果您愿意的话,不带循环的REPL。
它可以替代游戏场,同时使交互式地testing代码变得更容易: gore自动提供样板代码,如导入和包声明以及主函数包装器
而且,由于它运行在你自己的计算机上,所以不会因为安全原因而拒绝代码(与操作系统的安全沙箱模式不同)。

你有没有试过Go Playground ?

关于Go游乐场

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

GoSpeccy项目包含Go语言受限子集的内置REPL。 实现是使用goeval 。

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

在这里输入图像说明

HTH

不,但是你可以利用编译的速度(正如其他答案中提到的那样)。

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

天哪是互动的Golangshell。 目标是提供一个易于使用的交互式执行环境。

https://github.com/mkouhei/gosh