Goの変数宣言

2023.06.28
2024.03.24
プログラミング
Go

本ページはAmazonアフィリエイトのリンクを含みます。

はじめに

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
  • パッケージレベルの変数宣言したいとき
関数内で
  • ゼロ値に初期化したいとき
  • 型が指定されていないリテラルを代入し、デフォルトの型とは異なる型を指定したいとき
  • 新しく変数を宣言したことを明示したいとき
:=
  • 関数内で変数宣言したいとき(varの使い所以外で)

実際に使われている例として、Kubernetesのソースコードを抜粋してみました。

var:

kubernetes/pkg/controlplane/instance.go at master · kubernetes/kubernetes

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

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

kubernetes/pkg/controlplane/controller/clusterauthenticationtrust/cluster_authentication_trust_controller.go at master · kubernetes/kubernetes

Production-Grade Container Scheduling and Management - kubernetes/kubernetes

:=:

unknown link

参考

Support

\ この記事が役に立ったと思ったら、サポートお願いします! /

buy me a coffee
Share

Profile

author

Masa

都内のIT企業で働くエンジニア
自分が学んだことをブログでわかりやすく発信していきながらスキルアップを目指していきます!

buy me a coffee