如何直接从 terminal/command 行运行 Golang) 代码?

How to run Go(lang) code directly from terminal/command line?

我想直接从 terminal/command 行运行简单的 go 代码。例如:

go run "
package main
func main() {
println("hello")
}
"
hello

但是 golang 只允许从文件执行代码。那么也许有一些方法可以模拟它?像这样:

go run file.go < echo "...."

但是经过上面的操作应该没有文件。

在命令行中,只有像go-repl这样的项目才会compile/run多行go源代码而不留下任何.go文件。
替代方案:gore:

$ gore
Enter one or more lines and hit ctrl-D
func test() string {return "hello"}
println(test())
^D
---------------------------------
hello

(“Does Go provide REPL?”中列出了其他类似 repl 的解决方案)

或者您需要开发一个 go 包装器,它会在内部创建一个源代码并运行 运行 它,然后再删除它。

Ubuntu 有一个 gorun 工具,非常适合小脚本。它即时编译脚本,将二进制文件缓存在 /tmp 中。

https://wiki.ubuntu.com/gorun

虽然它旨在用于脚本而不是作为 REPL,但您可以通过多种方式使用它。

虽然 gorun 来自 Ubuntu 社区,但它应该适用于任何 Linux 发行版,因为它通过

使用 vanilla Go 源代码
$ go get launchpad.net/gorun