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!