インタラクティブな環境はプログラマにとって非常に役立ちます。ただし、Goでは提供されていないようです。私の理解は正しいですか?
いいえ、GoはREPLを提供していません。
ただし、すでに述べたように、 Go Playground (これは新しいURLです)は非常に便利です。 Go Authorは、機能豊富なエディターを追加することも検討しています。
ローカルなものが必要な場合は、 hsandbox のインストールを検討してください。単にhsandbox go
で単純に実行すると、端末画面が(screen
で)分割され、上部でコードを記述し、保存するたびに下部でその実行出力を確認できます。
式(オプションのパッケージ名)を評価するために使用される標準のGoコマンドにはgotry
があり、シェルからgotry 1+2
およびgotry fmt 'Println("hello")'
のように実行できます。多くの人が実際に使用したことはないため、もう利用できません。
Go用のREPLを構築するためのサードパーティプロジェクトも見ましたが、今ではそのうちの2つへのリンクしか見つけることができません: igo および go-repl =。どれだけうまく機能するかはわかりません。
私の2セント:コンパイルの速度はGoのREPLの記述を可能にします。これはここで言及したツールの構築にも役立ちましたが、同じ速度でREPLの必要性は低くなります。 GoでPlaygroundで実行できないものをテストするたびに、単純な.go
ファイルを開いてコーディングを開始し、単純にコードを実行します。 Go 1のgo
コマンドを使用すると、1コマンドのビルドプロセスが可能になり、さらに簡単になります。
UPDATE:Goの最新の週刊リリースに、go
コマンドが追加されました。これは、ファイルを非常に簡単に作成するために使用できます:prog.go
ファイルを作成してgo build prog.go && ./prog
を実行
UPDATE 2:Go 1では、go run filename.go
でgoプログラムを直接実行できます
UPDATE 3: gore
は興味深いと思われる新しいプロジェクトです。
また、 Sriram Srinivasan からのgoreという最近の(2013年3月)プロジェクトもあります。便利である:
goreはgolangコードのコマンドラインエバリュエーターです。ループがない場合は、REPLを使用します。
goプレイグラウンドの代わりになりますが、インタラクティブにコードを試すのがはるかに簡単になります:goreは、インポートおよびパッケージ宣言などの定型コードを自動的に提供し、メイン関数ラッパー。
また、独自のコンピューターで実行されるため、セキュリティの理由でコードが拒否されることはありません(プレイグラウンドのセーフサンドボックスモードとは異なります)。
Go Playground を試しましたか?
Go Playgroundについて
Go Playgroundは、golang.orgのサーバーで実行されるWebサービスです。サービスは、Goプログラムを受信し、サンドボックス内でプログラムをコンパイル、リンク、および実行してから、出力を返します。
Vimユーザーの場合、vim-goプラグイン( https://github.com/fatih/vim-go )は、現在の出力を実行して印刷するコマンド(GoRun)を提供しますバッファ。メインのGoファイルの定型コードをすべて含める必要がありますが、ローカル環境でコードスニペットをすばやくテストする便利な方法を提供します。
HTH
いいえ、ただし、コンパイルの速度を活用することができます(他の回答で述べたように)。
Generate-compile-runループを使用してREPLを模倣する rango をご覧ください。インポートとステートメントを使用して開始し、対話型セッションを開始することもできます。
GoshはインタラクティブなGolangシェルです。目標は、使いやすいインタラクティブな実行環境を提供することです。
https://github.com/haya14busa/goplay を試してみることもできます
Go REPLおよび他のREPLについて www.gorepl.com も確認してください。