|
@@ -0,0 +1,71 @@
|
|
|
|
|
+// 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)
|
|
|
|
|
+}
|