1.5 変数は短縮形式:=とvarのどちらを使うべきか

Goには変数の定義方法が2つあります。1つはvarを使った宣言方法、もう1つは:=演算子を使った短縮記法1です。

リスト1-3: 2つの変数宣言
	// ゼロ値
	var empty string

	// 値を設定かつ右辺から型がわかる場合
	one := 1

結論から言うと、使える場所ではどんどん短縮記法を使うべきです。var は指定しなければゼロ値(数字のゼロ、文字列なら空文字列、ポインターなどではnil)になり、短縮記法は右辺の値が代入されるとともに型も定まります。varを使うが、ゼロ値ではなく値を入れたい場合は短縮記法を使う方が自然だと思う人の方が多いでしょう。

	// 短縮記法の方が良い
	var two = 2

明示的に別の型にしたい場合はどちらも良いでしょう。短縮記法では、型か関数か区別がつきにくいこともあるため、型であることが一目瞭然のvarの方が良いと思う人も少なくありません。

	// varを使っても使わなくてもいい
	var three int8 = 3
	four := int16(4)

また、関数の外の、パッケージ変数の場合は短縮記法が使えませんので強制的にvarを使うことになります。

1

Goの文法定義ではこの演算子の名前は書かれていませんが、他の言語ではセイウチ演算子(Walrus Operator)と呼ばれます。右に90°傾けると、セイウチの目とキバに見えるからです。