Interactive shell for Golang¶
Golang用の対話形式シェル Gosh を作りましたよ、というお話です。
Golangでコードを書き始めた今年の年初くらいから、iPythonのような対話形式のシェルがほしいなと思っていました。気になるライブラリをちょっと試してみたいときに、 go get して、Emacsでコード書いて、 go run を実行する、というのは億劫で、 import したらそのまま go get して実行できれば良いな、と思っていました。
そういったツールが無いかと調べて、go-eval や igo や Go playground 1 にはたどり着いたのですが、パッケージをインポートする機能がないので自分の欲しい機能とは違う、ということでエイヤっと作ってみました。
特徴¶
現在の特徴としては次のとおりです。
Go 1.2 以上対応
対話形式のシェル
package mainの入力省略可 2標準ライブラリの
import省略可標準ライブラリ以外のライブラリの
import可 3import文の重複入力を無視importしても未使用のパッケージを無視Ctrl + dで終了
やっていることとしては、単に入力したコードからを、一時ファイル作って go run を実行するだけの簡単な内容です。
インストール方法や使い方は、 README を読んでください。
今後¶
main()を入力しないと実行できないので省略できるようにするタブ補完
DebianパッケージなどでシステムグローバルにインストールしたGolangライブラリなどの
importを省略できるようにする
などを考えています。良かったら使ってみて下さい。
Footnotes