Bye Bye Moore

PoCソルジャーな零細事業主が作業メモを残すブログ

GoLang用REPL「gore」

GoLangにはサードパーティ提供のREPL「gore」があります。
毎回毎回コンパイルしなくとも動作検証ができます。

実際のところ

導入

$ go get -u github.com/motemen/gore

公式で周辺ツールの導入も勧められているので、
ついでに導入しておきます。

$ go get -u github.com/nsf/gocode
$ go get -u github.com/k0kubun/pp # or github.com/davecgh/go-spew
$ go get -u golang.org/x/tools/cmd/godoc

動作

試しに動かしてみましょう。

$ gore
gore version 0.2.6  :help for help
gore> var something int16
gore> something = 10
10
gore> something + 20
30
gore> something
10
gore> something = something + 20
30

さらに、現状の内容をGOスクリプトとして吐き出すオプションが備わっています。
ためしに":print"を実行すると、以下のような内容で出てきます。

package main

import "fmt"

func __gore_p(xx ...interface{}) {
    for _, x := range xx {
        fmt.Printf("%#v\n", x)
    }
}
func main() { var something int16; something = 10; something = something + 20 }

中断

中断するには"Ctrl-D"。
Pythonと同じですね。

外部のファイルやパッケージを読み込むには?

$ gore --help
Usage of gore:
  -autoimport
    	formats and adjusts imports automatically
  -context string
    	import packages, functions, variables and constants from external golang source files
  -pkg string
    	specify a package where the session will be run inside

参考もと

github.com