iota(const内の連番)【Go】
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) }