| // Copyright 2014 The Go Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style |
| // license that can be found in the LICENSE file. |
| |
| // Enumeration with an offset. |
| // Also includes a duplicate. |
| |
| package main |
| |
| import "fmt" |
| |
| type Number int |
| |
| const ( |
| _ Number = iota |
| One |
| Two |
| Three |
| AnotherOne = One // Duplicate; note that AnotherOne doesn't appear below. |
| ) |
| |
| func main() { |
| ck(One, "One") |
| ck(Two, "Two") |
| ck(Three, "Three") |
| ck(AnotherOne, "One") |
| ck(127, "Number(127)") |
| } |
| |
| func ck(num Number, str string) { |
| if fmt.Sprint(num) != str { |
| panic("number.go: " + str) |
| } |
| } |