Goのiotaを使って定数を定義する

Goのiota定数定義 Go

Go言語で定数を定義するとき、Goのiotaを使って、便利な方法を紹介します。

Goの定数定義について

以下のコードで説明します。

package main
import “fmt”

const (
v1 = “first”
v2
v3
v4
v5
)
func main() {
    fmt.Println(v1)
    fmt.Println(v2)
    fmt.Println(v3)
    fmt.Println(v4)
    fmt.Println(v5)
}

結果:

first
first
first
first
first

結果から見ると、以下の結論が出ました。

結論:Goの定数を定義する際に、明示的に値を設定しない場合は、一つ前の定数の値で設定される。

iotaとは

iotaは、定数宣言(const)の内での既定された識別子です。
0から型なしの整数の連番を生成する。

コードで確認しましょう。

package main
import “fmt”

const (
    v1 = iota
    v2
    v3
    v4
    v5
)
func main() {
    fmt.Println(v1)
    fmt.Println(v2)
    fmt.Println(v3)
    fmt.Println(v4)
    fmt.Println(v5)
}

結果:

0
1
2
3
4

結論:0から連番でプラス1となりましたね。

iotaのリセットについて

ここまで、iotaは連番の数字を取得できることが分かりましたが、iotaの値は0に戻りたい場合、どのように書けばよいか。

コードで確認しましょう。

package main
import “fmt”

const (
    v1 = iota
    v2
    v3
)
const (
    v4 = iota
    v5
)
func main() {
    fmt.Println(v1)
    fmt.Println(v2)
    fmt.Println(v3)
    fmt.Println(v4)
    fmt.Println(v5)
}

結果:

0
1
2
0
1

結論:次のconstが現れたらリセットされる。

タイトルとURLをコピーしました