Goのiotaについて説明します。
ポイント
iotaのポイントは以下の通りです。
- 定数定義内で整数の連番を生成する。
- 整数の連番は0から開始される。
- iota という識別子を使用する。
- 定数定義内の定数の出現に応じて連番が1インクリメントされる。
- 新しい定数定義を行うとiotaの連番はリセットされる。
基本
定数定義の中の定数に対してiotaという識別子を使用します。
iotaは定数定義内の定数の出現に応じて連番が1インクリメントされます。
連番は0から開始されることが分かります。
package main
import (
"fmt"
)
const (
zero = iota
one= iota
two
)
func main() {
fmt.Println(zero) // 0 が表示される
fmt.Println(one) // 1 が表示される
fmt.Println(two) // 2 が表示される
}
なお定数 two のように直前に定数定義した内容は省略する事ができます。
iotaの連番リセット
新しく定数定義を行うと、iotaの連番がリセットされます。
package main
import (
"fmt"
)
const (
zero = iota
one= iota
two
)
// 新しく定数定義
const (
reset = iota
)
func main() {
fmt.Println(zero) // 0 が表示される
fmt.Println(one) // 1 が表示される
fmt.Println(two) // 2 が表示される
fmt.Println(reset) // 0 が表示される
}
式の利用
定数定義する際にiotaを式に利用できます。
package main
import (
"fmt"
)
const (
zero = iota + iota
one
two
)
func main() {
fmt.Println(zero) // 0 が表示される
fmt.Println(one) // 2 が表示される
fmt.Println(two) // 4 が表示される
}