Goの変数宣言
はじめに
Goでの変数宣言の方法と、その使い所についてざっくりまとめました。
var
初期値を指定した変数宣言は下記の通りです。型を省略するとデフォルトの型が選ばれます。
1var [変数名] [型] = [初期値]
2var [変数名] = [初期値]
1var n int = 100
1var n = 100
初期値を指定しないと、ゼロ値で初期化された変数を宣言できます。
1var [変数名] [型]
1var n int
複数の変数をまとめて宣言することも可能です。
1var (
2 n int
3 a string = "Hello"
4 b = 10
5 c int = 20
6)
:=
関数内では、:=
が使えます。宣言方法は下記の通りです。この場合、型は推定されます。
1[変数名] := [初期値]
1n := 100
複数宣言も可能です。
1n, m := 100, "Hello"
また、宣言だけでなく、左辺に新しい変数が1つ以上あれば既存の変数への代入も可能です。
1n := 100
2n, m := 200, 300
使い分け
var
と:=
の使い分けは意図を明確にできる形式を選択する必要があります。
下記のように使い分けることができます。
宣言方法 | 使い所 |
---|---|
var |
|
:= |
|
実際に使われている例として、Kubernetesのソースコードを抜粋してみました。
var
:
kubernetes/pkg/controlplane/instance.go at master · kubernetes/kubernetes
Production-Grade Container Scheduling and Management - kubernetes/kubernetes
kubernetes/pkg/controlplane/controller/clusterauthenticationtrust/cluster_authentication_trust_controller.go at master · kubernetes/kubernetes
Production-Grade Container Scheduling and Management - kubernetes/kubernetes
kubernetes/pkg/controlplane/controller/clusterauthenticationtrust/cluster_authentication_trust_controller.go at master · kubernetes/kubernetes
Production-Grade Container Scheduling and Management - kubernetes/kubernetes
:=
: