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
更新3 : 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。 目标是提供一个易于使用的交互式执行环境。