Go言語の変数
2026/07/28

変数宣言

varで型と初期値を明示できます。初期値を省略するとゼロ値が入ります。型を省略すると右辺から推論します。関数内では:=による短い変数宣言も使えます。

var x int = 10
var y = 20        // 型推論でint
z := 30           // 短い変数宣言(関数内のみ)

パッケージ直下では:=は使えず、varが必要です。

package demo

var count = 0 // OK
// n := 1     // コンパイルエラー: パッケージレベルでは:=不可

宣言した変数を使わないとコンパイルエラーになります。意図的に捨てるときは_へ代入します。

x := 1
_ = x

複数宣言

同じブロック内で複数の識別子をまとめられます。

var (
    host = "localhost"
    port = 8080
)

複数の戻り値を、左辺の変数に同時に受け取れます。すでに宣言済みの変数への再代入は=です。

x, y = 1, 2
a, b = b, a

関数から複数の値を受け取るときも、宣言済みなら=で再代入します。

func swap(a, b int) (int, int) { return b, a }

x, y := 1, 2
x, y = swap(x, y) // 2, 1

命名の慣習

複数語の名前はアンダースコアではなくMixedCapsまたはmixedCapsを使います。短いスコープではiokのような短い名前もよく使われます。

ゲッターにはGetプレフィックスを付けない慣習があります。フィールドownerならメソッドはOwnerとします。