【Go入門】定数宣言内のiota

Go
スポンサーリンク

Go言語の定数宣言は扱いましたが、この宣言の中で特徴的な使い方をするものがあります。

それは、識別子iota(イオタ)です。

このiotaについて見ていきましょう。

スポンサーリンク

iota

識別子iotaは、定数宣言内で連続する整数を表します。予約語のconstが現れるたびに0にリセットされます。

こう書くとわかりにくにので、実際にコードで試してみましょう。

package main

import "fmt"

const (
	c0 = iota
	c1 = iota
	c2 = iota
)

func main() {
	fmt.Println(c0)
	fmt.Println(c1)
	fmt.Println(c2)
}

constの中で定数を宣言しています。それに対して、iotaを代入しています。

これを出力すると次のような結果が示されます。

0
1
2

0から始まり、1づつ増えているのがわかります。

このコードは次のように書くこともできます。

package main

import "fmt"

const (
	c0 = iota
	c1
	c2
)

func main() {
	fmt.Println(c0)
	fmt.Println(c1)
	fmt.Println(c2)
}

const内で宣言した定数の最初のものにだけiotaを代入しています。

これを実行しても先ほどと同様の結果になります。

0
1
2

このようにiotaを定数宣言内で利用すると、連続した整数値をとります。

スポンサーリンク

constを使用する毎に0にリセット

この連続する整数値をとるiotaは、constが現れるたびに0にリセットされて処理されます。

次のコードで確認してみましょう。

package main

import "fmt"

const (
	c1 = iota
	c2
	c3
)

const (
	c4 = iota
	c5
	c6
)

func main() {
	fmt.Println(c1)
	fmt.Println(c2)
	fmt.Println(c3)
	fmt.Println(c4)
	fmt.Println(c5)
	fmt.Println(c6)
}

ここでは、constでの定数宣言を2つ行っています。

それぞれにiotaで初期化しています。

実行すると次のようになります。

0
1
2
0
1
2

このように、constが現れてると0から再度連続する整数値をとるようになります。

スポンサーリンク

最後に

Go言語のiota(イオタ)について見てきました。

iotaは定数宣言内で利用し、定数が0から連続した整数値をとります。

constが現れるたびに、リセットされて再び0からの連続した整数値をとります。

同じような処理はPythonでは見あたらないのでここでもPythonコードは省略します。

Go
スポンサーリンク
CodeGraffitiをフォローする

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