例如,对于
uint8,
package mainimport "fmt"func iter(min, max uint8) { { min, max := uint(min), uint(max) for i := min; i <= max; i++ { fmt.Printf("%d, ", i) } }}func main() { iter(0, 255)}对于
uint64,
package mainimport "fmt"func iter(min, max uint64) { for i := min; i <= max; i++ { fmt.Printf("%d, ", i) if i == max { break } }}func main() { iter(^uint64(0)-2, ^uint64(0))}输出:
18446744073709551613, 18446744073709551614, 18446744073709551615
附录 :
这是我对DaveC的建议。
package mainimport "fmt"func iter(min, max uint64) { for i, next := min, min <= max; next; i, next = i+1, i < max { fmt.Printf("%#016[1]x ", i) } fmt.Println()}func main() { const maxUint64 = ^uint64(0) iter(0, 3) iter(10, 9) iter(maxUint64-2, maxUint64)}输出:
0x0000000000000000 0x0000000000000001 0x0000000000000002 0x0000000000000003 0xfffffffffffffffd 0xfffffffffffffffe 0xffffffffffffffff



