Go言語のはじめてのプログラム
2026/07/28

import "fmt"を書いたままfmtを一度も使わないと、コンパイルエラーになります。Goは未使用のimportや変数を許さないため、「何を使うか」をコード上で明示する必要があります。実行可能プログラムを作るにはpackage mainfunc main()が必要ですが、ソースのファイル名はmain.goに固定されていません。hello.goのように任意の名前にできますが、慣習としてmain.goを使うことが多いです。

Hello, World

package main

import "fmt"

func main() {
    fmt.Println("Hello, World")
}
go run main.go

ソースの構成

先頭のpackage宣言、import、引数なしのfunc main()が、実行可能プログラムの骨格です。同一ディレクトリの.goファイルは同じpackage句で1つのパッケージに束ねられ、別ファイルで定義した関数も同じ名前空間から呼び出せます。

greet.goに処理を分け、main.gofunc main()から呼ぶ例:

// greet.go
package main

func greet(name string) string {
    return "Hello, " + name
}
// main.go
package main

import "fmt"

func main() {
    fmt.Println(greet("Go"))
}

1ファイルだけのときはgo run main.goで足ります。複数ファイルがあるときにgo run main.goだけでは他ファイルが含まれないため、go run .でディレクトリごとビルドします。go runはビルド結果を一時的に実行するだけです。実行ファイルを残すときはgo build -o hello .のように-oで名前を付けて出力します。