Go提供REPL吗?

Go提供REPL吗?,go,read-eval-print-loop,Go,Read Eval Print Loop,交互环境对程序员非常有帮助。然而,Go似乎没有提供这一点。我的理解正确吗?你试过这个吗 关于围棋场 Go游乐场是一个在golang.org服务器上运行的web服务。 该服务接收Go程序,编译、链接并运行 程序,然后返回输出 不,Go不提供REPL 但是,正如前面提到的,(这是新的URL)非常方便。Go的作者也在考虑向其添加一个功能丰富的编辑器 如果您想要本地的,请考虑安装。使用hsandbox go简单地运行它将分割终端屏幕(使用screen),您可以在顶部编写代码,并在每次保存时在底部查看其执

交互环境对程序员非常有帮助。然而,Go似乎没有提供这一点。我的理解正确吗?

你试过这个吗

关于围棋场

Go游乐场是一个在golang.org服务器上运行的web服务。 该服务接收Go程序,编译、链接并运行 程序,然后返回输出


不,Go不提供REPL

但是,正如前面提到的,(这是新的URL)非常方便。Go的作者也在考虑向其添加一个功能丰富的编辑器

如果您想要本地的,请考虑安装。使用

hsandbox go
简单地运行它将分割终端屏幕(使用
screen
),您可以在顶部编写代码,并在每次保存时在底部查看其执行输出

标准Go命令中有一个
gotry
,用于计算表达式(带有可选的包名),可以像shell中的
gotry 1+2
gotry fmt'Println(“hello”)
一样运行。它不再可用,因为实际使用它的人不多

我还看到了构建REPL for Go的第三方项目,但现在我只能找到其中两个的链接:和。我不知道他们工作得怎么样

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

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

更新2:使用Go 1,您可以使用
Go run文件名直接运行Go程序。Go


更新3:是一个新项目,看起来很有趣。

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

看看使用generate compile运行循环来模拟REPL的。您还可以从导入和语句开始交互式会话。

您最近(2013年3月)还有一个名为的项目,该项目非常有用:

gore是golang代码的命令行计算器——如果您愿意,它是一个没有循环的REPL。
它是go Playerd的替代品,同时更容易以交互方式尝试代码:戈尔自动提供锅炉板代码,如导入和包声明以及主函数包装器
此外,由于它在您自己的计算机上运行,因此不会以安全为由拒绝任何代码(与go Playerd的安全沙箱模式不同)


该项目包括Go语言的受限子集的内置REPL。实现正在使用。

如果您是Vim用户,Vim go插件()提供一个命令(GoRun)来运行和打印当前缓冲区的输出。您仍然需要包含主Go文件的所有样板代码,但它仍然提供了一种在本地环境中快速测试代码片段的方便方法

HTH

试试汽车司机/戈尔 另一个Go-REPL运行良好。具有线条编辑功能, 代码完成,等等


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

您也可以尝试一下
这使您能够将go代码文件从终端直接运行到go游乐场

请同时检查go REPL和其他REPL

我在VSCode调试器方面有些运气,但它相当有限,因为您无法从调试控制台调用函数

基本上,您在正确配置
launch.json
文件后设置了一个断点。然后,您可以在变量侧栏的左侧向下搜索,并在调试控制台中输入变量表达式。

Go代码可以在Visual Studio代码中以类似REPL的方式运行,并带有Go扩展和code Runner扩展。单击运行三角形▶ 它在下面的屏幕截图中由鼠标光标标记,以运行代码并在Visual Studio代码底部的输出窗格中显示结果

使用Go编程时,Visual Studio代码将建议安装其他Go扩展,以扩展Visual Studio代码的功能


TL;igo博士和其他人:Gore不是很方便,因为它需要粘贴和Ctrl-D。像Reintract for Go这样的东西会是很棒的酱汁。似乎有两个REPL项目叫做“Gore”。这一条比答案中的那一条更积极:哈,我正要发布同样的东西。我刚刚在那里玩了
motemen/gore
,很不错。gore非常好而且使用简单。如何在当前缓冲区中生成GoRun输出。my vim,在shellvim中显示它!然而,为了更进一步,我将删除锅炉板代码,将我的“package_test.go”放在分割缓冲区中,并继续敲打:GoTest&:GoCoverage。我的2美分…你用来显示输入的程序是什么?我爱that@jclasley在回购协议的自述中。仅限MacOS