Language
日本語
English

Caution

JavaScript is disabled in your browser.
This site uses JavaScript for features such as search.
For the best experience, please enable JavaScript before browsing this site.

  1. Home
  2. Go Dictionary
  3. Creating and Running .go Files

Creating and Running .go Files

Goのコードをテキストファイルに保存し、ターミナルで実行する方法を解説します。ファイルの実体はただのテキストファイルで、拡張子を『.go』にしたものです。

.goファイルの書き方

テキストエディタで Go のコードを記述し、ファイル名を『.go』拡張子で保存します。ファイルの文字コードは『UTF-8』で保存してください。

greet.go
package main

import "fmt"

func main() {
	name := "太郎"
	age := 25

	fmt.Printf("こんにちは、%sさん!\n", name)
	fmt.Printf("年齢: %d歳\n", age)

	if age >= 20 {
		fmt.Println("成人です。")
	} else {
		fmt.Println("未成年です。")
	}
}

1行目の『package main』はこのファイルが実行可能プログラムであることを示します。2行目の『import "fmt"』は標準出力などの機能を提供するパッケージを読み込む宣言です。プログラムの開始点となる『main』関数から処理が始まります。

コメントの書き方

.go ファイルにはコメント(メモ)を記述できます。コメントはコンパイラに無視されるため、コードの説明や注意書きを残すのに使います。

書き方説明
// コメント1行コメントです。『//』の後にスペースを1つ入れて記述します。行末まで有効です。
/* コメント */複数行コメントです。『/*』から『*/』までの範囲がコメントになります。
sample_comments.go
package main

import "fmt"

/*
  以下はメイン関数です。
  プログラムの開始点になります。
*/
func main() {
	// ユーザー名を設定します。
	name := "花子"

	// 挨拶メッセージを表示します。
	fmt.Printf("こんにちは、%sさん!\n", name)
}
go run sample_comments.go
こんにちは、花子さん!

Go では関数・型・変数の直前に書いた『//』コメントがドキュメントコメントとして扱われます。公開されるシンボルにはコメントを書く習慣を付けておくと良いでしょう。

実行方法

go run で直接実行する

『go run』コマンドを使うと、コンパイルと実行を1つのコマンドで行えます。手軽に試したいときに便利です。

go run greet.go
こんにちは、太郎さん!
年齢: 25歳
成人です。

go build でビルドしてから実行する

『go build』コマンドを使うと実行ファイルを生成できます。生成した実行ファイルは Go がインストールされていない環境でも動作します。

go build greet.go

ビルドに成功するとカレントディレクトリに実行ファイルが生成されます。エラーメッセージが表示されなければビルド成功です。『./』を付けて実行します。

./greet
こんにちは、太郎さん!
年齢: 25歳
成人です。

バージョンを確認したい場合は以下のコマンドを使います。

go version

Overview

.go ファイルはただのテキストファイルです。テキストエディタで Go のコードを書き、拡張子を『.go』にして保存するだけで作成できます。特別なツールは必要ありません。

Go の実行方法は2種類あります。『go run ファイル名.go』はコンパイルと実行を一度に行うため、コードをすばやく試したいときに便利です。一方、『go build ファイル名.go』は実行ファイルを生成するため、配布や本番環境での利用に適しています。

コメントは1行コメント(『//』)と複数行コメント(『/* */』)の2種類があります。Go では1行コメントを使うことがほとんどです。

Go のインストールについては『環境構築』を参照してください。

If you find any errors or copyright issues, please .