[Go言語] constとiota面白い

September 21, 2013

この記事はQiitaの記事をエクスポートしたものです。内容が古くなっている可能性があります。

連番を付ける

iotaを使うと連番が付けれる。

http://play.golang.org/p/w9KX9ry0Da

package main

import "fmt"

const (
	a = iota
	b
	c
)

func main() {
	fmt.Println(a, b, c)
}

iotaとシフトを組み合わせてみる

シフトと組み合わせると簡単にフラグが作れる。

http://play.golang.org/p/rHew6bPIWQ

package main

import "fmt"

type flag uint
const (
	flag1 flag= iota << 1
	flag2
	flag3
	flag4
	bits = iota - 1
	mask = 1<<bits - 1
)

func main() {
	fmt.Printf("%b, %b, %b, %b, %d, %b", flag1, flag2, flag3, flag4, bits, mask)
}