読者です 読者をやめる 読者になる 読者になる

Bye Bye Moore

猫マンション建築の野望を胸に零細事業主として資本主義の荒波に漕ぎ出したアラサー男の技術メモ

GoLang用REPL「gore」

golang

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