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!
}