duannuan0074
duannuan0074
2015-01-03 09:28

如何直接从终端/命令行运行Go(lang)代码?

I want to run simple go code directly from terminal/command line. For example:

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

However golang allows code execution only from file. So maybe there are some ways how to emulate it? Like this:

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

But there should be no files after actions above.

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

2条回答

  • donglanying3855 donglanying3855 6年前

    In command-line, only a project like go-repl would compile/run a multi-line go source code without leaving any .go file behind.
    An alternative: gore:

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

    (Other repl-like solution are listed in "Does Go provide REPL?")

    Or you would need to develop a go wrapper which would internally create a source code and go run it, before deleting it.

    点赞 评论 复制链接分享
  • du3932066 du3932066 6年前

    Ubuntu has a gorun tool which works well for small scripts. It compiles scripts on the fly, caching the binaries in /tmp.

    https://wiki.ubuntu.com/gorun

    Although it's intended for scripting and not as a REPL, you could use it in various ways.

    Although gorun has come from the Ubuntu community, it should work on any Linux distro because it uses vanilla Go source code via

    $ go get launchpad.net/gorun
    
    点赞 评论 复制链接分享

为你推荐