我想直接从终端/命令行运行简单的代码。例如:
go run "
package main
func main() {
println("hello")
}
"
hello
然而golang只允许从文件执行代码。那么也许有一些方法可以模仿它?像这样:
go run file.go < echo "...."
但是上面的操作之后应该没有文件。
答案 0 :(得分:6)
在命令行中,只有像go-repl这样的项目才能编译/运行多行go源代码,而不会留下任何.go
文件。
替代方案:gore:
$ gore
Enter one or more lines and hit ctrl-D
func test() string {return "hello"}
println(test())
^D
---------------------------------
hello
(其他类似repl的解决方案列于&#34; Does Go provide REPL?&#34;)
或者您需要开发一个go包装器,它会在内部创建源代码并运行它,然后再删除它。
答案 1 :(得分:1)
Ubuntu有一个gorun
工具,适用于小脚本。它动态编译脚本,在/ tmp中缓存二进制文件。
虽然它是用于编写脚本而不是用作REPL,但您可以通过各种方式使用它。
虽然gorun
来自Ubuntu社区,但它应该适用于任何Linux发行版,因为它通过
$ go get launchpad.net/gorun