// iota_cheatsheet.go package main import "fmt" /* ------------------------------------------------- 1) 顺序枚举(最常用) Sunday=0, Monday=1, ..., Saturday=6 ------------------------------------------------- */ const ( Sunday = iota // 0 Monday // 1 Tuesday Wednesday Thursday Friday Saturday ) /* ------------------------------------------------- 2) 位掩码(flags) 每个常量占 1 个二进制位,可用于权限/选项 ------------------------------------------------- */ const ( Read = 1 << iota // 0b0001 Write // 0b0010 Exec // 0b0100 ) /* ------------------------------------------------- 3) 自定义步长或公式 生成 1KB, 1MB, 1GB ... 的精确字节数 ------------------------------------------------- */ const ( _ = iota // 0 丢掉 KB = 1 << (10 * iota) // 1 << 10 = 1024 MB // 1 << 20 = 1048576 GB // 1 << 30 = 1073741824 ) /* ------------------------------------------------- 4) 跳号 + 中途改公式 演示跳过某个值、后续再换算法 ------------------------------------------------- */ const ( A = iota // 0 B // 1 _ // 2 被跳过 C // 3 D = iota + 10 // 4+10 = 14 E // 5+10 = 15 ) func main() { fmt.Println("Weekday:", Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday) fmt.Println("Flags :", Read, Write, Exec) fmt.Println("Storage:", KB, MB, GB) fmt.Println("Misc :", A, B, C, D, E) }