Goで開発しているときに
- 標準パッケージの動作確認したい
- ライブラリの動作確認したい
- 簡単なスクリプト(HTTPやgoroutineなど)を書きたい
と思って調べてみました。
Rubyならirbやpryを使ってコンソールで簡単な動作検証を行えたり、変数の内部見ることができますが、Goは静的な言語でコンパイルすることが必要になるので、デフォルトではそういうちょっとした確認のためのスクリプト書いたりみたいなことができません。
Goで一時的なスクリプト確認したい場合はいつも The Go Playgroundを使っていましたが、
- 補完が効かない
- 標準パッケージしか使えない
という2点があって、例えばgithub上のライブラリの検証は実際に手元に落としてきて、Goでsampleファイル書くっていう手順をいつも行っててめんどくさいなーって思ってました。
そこでGoでもREPL的なものが無いかを調べてみたところ
ありました
作者さんが書いた使い方のエントリー motemen.hatenablog.com
実際に入れてみたところ
$ gore gore version 0.2.6 :help for help gore> :import encoding/json gore> b, err := json.Marshal(nil) []uint8{ 0x6e, 0x75, 0x6c, 0x6c, } nil
おおおお!これはよい。簡単なスクリプトを試すにはすごく便利です。
:import
すると手元に落としてきたライブラリもimportできるので、標準以外のメジャーなライブラリのサンプル書くのもいちいちGoのファイル作らなくていいので楽になります。
pp
や gocode
をあわせて入れとくと出力をきれいに整形してくれたり、補完が効くようになります。
可読性も効率もアップできるのでとても便利なデバック用のライブラリだと思います。