const内で連番を振る時に使用します。
const (
c1 = iota
c2 = iota
c3 = iota
)
func main() {
fmt.Println(c1, c2, c3) // 0 1 2 3
}
constの性質を利用できるため、iotaは一度の記述でも問題ありません。
const (
c1 = iota
c2
c3
)
func main() {
fmt.Println(c1, c2, c3) // 0 1 2 3
}
iotaが連番を管理するので、記述ミスなどを防ぐことができます。
例えば、容量のKB、MB、GBは次のように表すことができます。
const (
_ = iota // 0は使用しないため、破棄
KB int = 1 << (10 * iota) // シフト演算子を使用して、10*iotaビット左にずらす(10ビットなら2の10乗)
MB // constは、代入値の記載がない場合、上に記載されているものが引き継がれる。iotaだけ連番となる
GB // constは、代入値の記載がない場合、上に記載されているものが引き継がれる。iotaだけ連番となる
)
func main() {
fmt.Println(KB, MB, GB)
}