(この記事は Go by Example: Variables を翻訳したものです。)
Goにおいては、変数は明示的に宣言されコンパイラーでは関数が呼ばれる時、型のチェックなどに使われる。
package main
import "fmt"
func main() {
// 1個以上の変数を宣言することができる。
var a string = "initial"
fmt.Println(a)
// 複数の変数を一度に宣言することもできる。
var b, c int = 1, 2
fmt.Println(b, c)
// Goは初期の変数の値によって型を推定する。
var d = true
fmt.Println(d)
// 初期化を宣言しない変数は、zero-valueとして宣言される。
// 例えばintのzero valueは0である。
var e int
fmt.Println(e)
// :=は初期化して宣言するための省略表記である。
// var f string = "short" を書きを同様である。
f := "short"
fmt.Println(f)
}
$ go run variables.go
initial
1 2
true
0
short
stringのzero value = ""
package main
import "fmt"
func main() {
var a string
fmt.Println(a)
fmt.Println(a == "")
}
▶ go run str-zero.go
true
ゼロ値って?
初期化をしない場合に入っている値
型 | 値 |
---|---|
bool | false |
整数型 | 0 |
浮動小数点型 | 0.0 |
string | "" |
ポインタ、関数、インタフェース、スライス、チャネル、マップ型 | nil |
構造体、配列 | 各要素がそのゼロ値 |