LLから、Goに移るときの不満の一つに「REPL(インタラクティブシェル)が無い」があります。
「ポインタはmapのキーになるんだっけ?」のような、つまらない(けど、ありがちな)疑問を解消するには、ドキュメントを漁るより、コードを書いてしまう方が、手っ取り早いですよね?
goplayを作った!
https://github.com/doloopwhile/goplayは、書捨てGoコードを書くためのシンプルなツールです。
やっているのは、
1. 一時ディレクトリを/tmp/goplay/以下に作る
2. main.goを一時ディレクトリに作る
3. 一時ディレクトリで新しいシェルを起動
4. 環境変数GOPATHに一時ディレクトリを追加。
これだけです。
インストールはgo getするだけです。
go get github.com/doloopwhile/goplay
他の方法との比較
Go Playground
(http://play.golang.org/)[Go Playground]はブラウザ上でGoを書いて実行できます。 しかし、 - 外部ライブラリをimportできない - 好きなエディタが使えない という欠点があります。
goplayは、ローカルで実行するので、外部ライブラリもエディタも自由に使えます。
その場でvi a.goする
まぁ、それでも動くは動くんですが、
package mainの*.goファイルが同一ディレクトリに複数あると、
エディタのシンタックスチェッカーが、
「main redeclared in this block」
を出してくるのが五月蝿い。
そして、作ったスクリプトを削除するのも面倒くさい。
Let's go!