Go 言語の変数

Go の変数宣言

Go で変数を使う場合には、先に変数の宣言をします。

Go の変数の宣言は次の形式で行います。

var 変数名 データ型

データ型については「Go 言語のデータ型」をご覧ください。 よく使われるものは真偽型の bool、 整数型の int、バイト型の byte、浮動小数点型の float64、文字列型の string などがあります。

例えば、整数型 int の変数 m を宣言する場合は、次のようになります。

package main

import (
	"fmt"
)

func main() {
	var m int
	m = 3
	fmt.Println(m) // 3
}

Go で変数の宣言と同時に特定の値で初期化する場合は、次のように書きます。

var 変数名 データ型 = 初期値

例えば上の例で、変数 m の宣言時に 3 という整数値で初期化する場合は、次のように書けます。

	var m int = 3

初期値を指定しない場合はゼロ値 (zero value) で初期化されます。データ型別のゼロ値は次の表の通りです。

データ型ゼロ値
bool false
数値型 0
文字列型 "" (空文字列)

Go の変数宣言時の型の省略

変数宣言時に初期化を行う場合、初期化する値から型がわかるため型名を省略することができます。

package main

import (
	"fmt"
)

func main() {
	var x = 3
	fmt.Printf("%v [%T]\n", x, x) // 3 [int]
}

fmt.Printf() の書式指定で、 %vは「その変数の型の既定の書式」、 %T は「その変数の型の名前の文字列」を表しています。

上記 8 行目と同じ意味で、 := というシンタックスで var も省略できます。

	x := 3 // var x = 3 と同じ意味

簡潔でわかりやすい表記であり、Go らしい書き方なので当サイトでもなるべく := を使います。

Go で複数の変数を一度に宣言する方法

変数宣言時に複数の変数を並べて記載することで、一度に複数の変数を宣言することができます。

	var x, y int = 1, 3
	fmt.Printf("%v, %v\n", x, y) // 1, 3

この場合も型名を省略することができ、上記の 1 行目は次と同じ意味になります。

	var x, y = 1, 3

複数の変数を宣言する時も、 := 表記を用いて var を省略できます。

	x, y := 1, 3 // var x, y int = 1, 3 と同じ

同時に複数の変数を宣言する時に、データ型が同一である必要はありません

package main

import (
	"fmt"
)

func main() {
	x, y, z := 1, 3.14, "Hello!"
	fmt.Printf("%v, %v, %v\n", x, y, z) // 1, 3.14, Hello!
}

var ( ... ) 表記を用いて、複数行で変数を宣言できます。

package main

import (
	"fmt"
)

func main() {
	var (
		x = 1
		y = 3.14
		z = "Hello!"
	)
	fmt.Printf("%v, %v, %v\n", x, y, z) // 1, 3.14, Hello!
}

ここまでお読みいただき、誠にありがとうございます。SNS 等でこの記事をシェアしていただけますと、大変励みになります。どうぞよろしくお願いします。

© 2024 Go 言語入門