Go言語のgo runコマンドで素早くプログラムを実行しよう!初心者向け解説
生徒
「先生、Go言語で作ったプログラムをすぐに実行する方法はありますか?」
先生
「はい、go runコマンドを使えば、ビルドと実行を同時に行うことができます。」
生徒
「ビルドって、あのコンピュータ用の実行ファイルを作る作業ですよね?go buildと何が違うんですか?」
先生
「そうです。go buildは実行ファイルを作るだけですが、go runは一時的にビルドして、その場でプログラムを動かしてくれる便利なコマンドです。」
生徒
「なるほど、テストや動作確認に使う感じですね。」
先生
「その通りです。開発中はgo runで素早く動作を確認して、完成したらgo buildで配布用の実行ファイルを作るのが基本です。」
1. go runコマンドの基本
まずは、簡単な例でgo runの使い方を見てみましょう。ターミナルやコマンドプロンプトで、プログラムのあるディレクトリに移動して以下のコマンドを入力します。
go run main.go
これだけで、main.goのプログラムがコンパイルされ、実行されます。実行後に生成されるファイルは一時的なので、ディレクトリには残りません。
2. 複数ファイルをまとめて実行
Go言語のプログラムは、1つのファイルだけでなく複数のファイルで構成されることがあります。その場合もgo runでまとめて実行できます。
go run main.go utils.go
この例では、main.goとutils.goを同時にコンパイルして実行します。複数のファイルを扱う場合でも、簡単に動作確認できます。
3. go runの便利なオプション
go runには、実行時に便利なオプションがあります。例えば、モジュールを使った依存関係の管理をする場合は、ディレクトリ全体を指定して実行することも可能です。
go run ./myapp
このコマンドでは、myappディレクトリ内のmain.goや依存するファイルをまとめてビルドして実行します。
4. go runとgo buildの違いを理解しよう
先ほど少し触れましたが、ここで改めて違いを整理しましょう。
- go run: 一時的にビルドしてその場で実行する。実行ファイルは残らない。
- go build: コンパイルして実行ファイルを作成する。配布や保存に向いている。
つまり、go runは素早くテストしたいときに便利で、go buildは正式に完成したプログラムを配布するときに使います。
5. 実行結果の確認方法
プログラムをgo runで実行すると、すぐに結果がターミナルに表示されます。
Hello, Go World!
このように、ターミナル上で結果が確認できるので、初心者でもすぐにプログラムの動作を理解できます。
6. 簡単なサンプルプログラム
まずは簡単なプログラムを書いてみましょう。main.goに以下のコードを保存します。
package main
import "fmt"
func main() {
fmt.Println("Hello, Go World!")
}
そして、ターミナルで以下を実行します。
go run main.go
すると、
Hello, Go World!
と表示されます。これでgo runの基本的な使い方が理解できます。
7. 依存パッケージを使う場合の注意点
Go言語では外部パッケージを利用することがあります。go runを使う場合でも、事前に依存関係を整理しておくことが重要です。例えば、
go mod tidy
を実行すると、必要なパッケージが自動でダウンロードされ、go runでスムーズに実行できます。
8. 開発効率を上げるポイント
初心者でも効率よくGo言語のプログラムを作るには、go runでこまめに動作確認することが大切です。また、複数ファイルや外部パッケージを使う場合は、ディレクトリ単位でgo run ./ディレクトリ名とすることで、手間を減らせます。
9. よくあるエラーと対処法
go runで「packageが見つからない」と表示される場合は、依存パッケージがダウンロードされていない可能性があります。その場合は
go get github.com/user/package
でインストールし、再度go runを実行してください。また、go mod tidyで依存関係を整理するのも有効です。
10. go runで学ぶGo言語の基本
ここまでで、go runの基本、複数ファイルの実行、依存関係の管理、よくあるエラーの対処法まで理解できました。初心者でもgo runを使えば、すぐにプログラムを試して学習を進めることができます。
まとめ
Go言語での開発において、手軽にプログラムを実行できる手段として「go run」コマンドは非常に便利な存在です。最初は「ビルド」や「実行」という専門的な言葉に戸惑うことがあっても、実際に使ってみると仕組み自体はとてもシンプルで、初心者でも理解しやすい構造になっています。特に、ファイルを一時的にコンパイルしてすぐに実行できるという特性は、Go言語で学習を始めた人にとって大きな助けになります。こまめに動作確認をしながら進められるため、プログラムの書き方やGo言語の特徴を自然な形で体験できるのが大きな魅力です。
「go run」は、プログラムを素早く試して結果を確認したい場面にとても向いています。たとえば短いサンプルや動作確認の段階では、実行ファイルを生成する必要がありません。ターミナルに表示される結果を見ながら、繰り返しコードを調整することができます。また、複数のファイルで構成されたプロジェクトでもファイル名を並べて実行するだけでまとめてコンパイルされるため、Go言語での開発作業が自然に円滑に進められます。わかりやすいコマンドながら、柔軟で幅広い状況に対応できる点が特徴です。
さらに、ディレクトリ単位で実行できる使い方や、依存パッケージを考慮した実行方法など、学べば学ぶほど便利さを感じられるポイントが多くあります。Go言語特有のモジュール管理である「go mod」と組み合わせれば、外部パッケージを利用する場合でも問題なく動作確認を行うことができます。「go mod tidy」で必要なパッケージを整理し、足りないものは「go get」でインストールしておけば、複雑な依存関係があってもスムーズです。開発を快適に進めるためには、こうした基本を理解しておくことがとても大切です。
初学者のうちは、動かしてみないと理解しづらい部分が多いですが、「go run」はその不安を軽くしてくれます。結果がすぐに目に見えることで、プログラムの流れや関数の動きが理解しやすくなり、学びを深める助けになります。特に、エラーが発生したときの対処方法に繰り返し触れることで、自然と理解が定着します。「packageが見つからない」といったエラーも、経験を積むうちに落ち着いて対応できるようになります。
ここでは、記事を振り返り、Go言語の基本的な構造と「go run」の活用方法を再確認するため、簡単なサンプルプログラムを掲載しておきます。記事と同じ形式で記述しているため、読み返しながら自分自身の理解を深める資料としても役立つ内容です。
サンプルプログラムで学ぶGo言語の基本構造
以下は、「go run」を使ってすぐに動作を確認できる最小構成のサンプルです。プログラムの動作を確かめながら進めると理解が深まりやすくなります。
package main
import "fmt"
func main() {
fmt.Println("Go言語で学ぶ基本サンプルプログラムです。go runで素早く実行できます。")
}
このプログラムを保存したら、ターミナルで以下のコマンドを実行します。
go run main.go
「go run」を使うことで、不要な実行ファイルを残さずに結果だけをすぐに確認できます。初心者にとって負担の少ない学習方法であり、特に簡単な処理を試してみたいときには最適です。Go言語そのものが持つシンプルさと相性が良く、学び始めたばかりの段階でも扱いやすいことがよく分かります。
また、複数ファイルで構成された場合の実行や、ディレクトリ単位で構成をまとめて評価できる仕組みは、プログラムが複雑になるほど効果を発揮します。Go言語は軽量で高速なコンパイルが特徴ですが、「go run」による一時ビルドでもその軽快さは十分に感じることができます。開発効率を高めながら、コードの理解を深めるためにも、ぜひ活用していきたいコマンドです。
生徒
「先生、記事を読みながら実際にgo runを使ってみたら、すぐに結果が出てとてもわかりやすかったです!」
先生
「それは良い経験ですね。Go言語は実行が速いので、go runとの相性も抜群なんですよ。動きを確かめながら書くことが大切です。」
生徒
「複数ファイルをまとめて実行できるのも便利ですね。今まで仕組みが分からなくて不安でしたが、今は少し自信がつきました!」
先生
「その調子です。Go言語は慣れてくると、より複雑な処理もシンプルに書けるようになります。go runでこまめに確認する習慣はとても良いですよ。」
生徒
「次は外部パッケージを使ったプログラムにも挑戦してみたいです。依存関係を整理したり、エラーに向き合うのも楽しめそうです!」
先生
「その意欲があれば大丈夫ですね。ゆっくり確実にステップアップしていきましょう。Go言語はあなたの学びをしっかり支えてくれますよ。」