[Go 言語]変数定義について

Go Blue Logo プログラミング

最近 Go 言語 を使うようになったんですが、 Go 言語 では変数定義する時の書き方がいくつかあるみたいなので、その書き方をまとめておきます。

変数を1つずつ宣言する場合

初期値なしの場合

var str string

var の後ろに変数名、変数の型の順番で変数を定義します。

初期値ありの場合

変数宣言時に初期値を設定する場合、変数の定義方法はいくつかあります。
var の後ろに変数名、変数の型を宣言した後に初期値を設定する。

var str string = "初期値の値"

初期値の値から変数の方を推測することができるので、変数の型を省略して記述することもできます。

var str = "初期値の値"

var を省略して記述することもできます。その際は「 = 」で初期値を設定するのではなく、「 := 」で初期値を設定します。

str := "初期値の値"

この変数定義の方法をよく使いそうですね。

複数の変数をまとめて宣言する場合

初期値なしの場合

変数名をカンマで区切ることで複数の変数定義をまとめておこなうことができます。

var str1, str2, str3 string

初期値ありの場合

複数の変数に対応した初期値を設定することで複数の変数にまとめて初期値を設定することができます。

var str1, str2, str3 string = "初期値1", "初期値2", "初期値3"

ちなみに下記のように同じ値を複数の変数に設定しようとするとエラーになります。

var str1, str2, str3 string = "初期値1"

宣言する変数の数と初期値の数は一致させる必要があります。
もちろん、変数の方を省略したり、 var を省略して変数宣言することもできます。

var str1, str2, str3 = "初期値1", "初期値2", "初期値3"
str1, str2, str3 := "初期値1", "初期値2", "初期値3"

() 」を利用して変数をまとめて宣言することもできます。

var (
    str1       string = "初期値"
    str2       string
    str3       string = "初期値3"
    n1         int    = 1
    n2, n3     int    = 2, 3
    num1, num2        = 1, 2
)

処理の先頭部分で変数定義をまとめて行う場合などに活用できそうです。
ちなみにこの「 () 」ですが、 import 文をまとめて書く時にも役に立ちます。

import (
    "errors"
    "golang.org/x/crypto/bcrypt"
)

こんな感じで複数のパッケージをまとめて import することができます。

最後に

Go 言語 は勉強始めたばかりなので、変数定義に柔軟性があることを理解し、実装が少しでも簡素化できるようにしたいですね。

コメント

モバイルバージョンを終了
タイトルとURLをコピーしました