Skip to content

Latest commit

 

History

History
64 lines (49 loc) · 1.14 KB

4.07.md

File metadata and controls

64 lines (49 loc) · 1.14 KB

Section 4.7: Iota

Go Specificationconstant declarationsの最後近くで、iotaconstの値として割り当てられています。

Iotaは定義済みの識別子です。

package main

import (
	"fmt"
)

const (
	a = iota
	b = iota
	c = iota
)

func main() {
	fmt.Println(a)
	fmt.Println(b)
	fmt.Println(c)
	
	fmt.Printf("%T\n", a)
	fmt.Printf("%T\n", b)
	fmt.Printf("%T\n", c)
}

playground

値がオートインクリメントしているのが分かります。オートインクリメントする定数をセットするのには、最初だけiotaをセットすることだけでも可能です。

package main

import (
	"fmt"
)

const (
	a = iota
	b
	c
)

const (
	d = iota
	e
	f
)

func main() {
	fmt.Println(a)
	fmt.Println(b)
	fmt.Println(c)
	fmt.Println(d)
	fmt.Println(e)
	fmt.Println(f)
}

こちらのコードではオートインクリメントが定数を宣言しているグループごとにリセットされていることが分かります。