go iota的间隔相加,5和1024倍
1, 间隔5的
package main
import (
"fmt"
"reflect"
)
type Author struct {
Name int `json:Name`
Publications []string `json:Publication,omitempty`
}
func main() {
t := reflect.TypeOf(Author{})
for i := 0; i < t.NumField(); i++ {
name := t.Field(i).Name
s, _ := t.FieldByName(name)
fmt.Println(">>1", name, ">>2", s.Tag)
}
const (
B = 0 + (5 * iota)
KiB
MiB
GiB
TiB
PiB
EiB
)
fmt.Println("B>>", B)
fmt.Println("KiB>>", KiB)
fmt.Println("MiB>>", MiB)
fmt.Println("GiB>>", GiB)
fmt.Println("TiB>>", TiB)
fmt.Println("PiB>>", PiB)
fmt.Println("EiB>>", EiB)
}
输出:
>>1 Name >>2 json:Name
>>1 Publications >>2 json:Publication,omitempty
B>> 0
KiB>> 5
MiB>> 10
GiB>> 15
TiB>> 20
PiB>> 25
EiB>> 30
2, 1024倍的
package main
import (
"fmt"
)
func main() {
const (
B = 1 << (10 * iota)
KiB
MiB
GiB
TiB
PiB
EiB
)
fmt.Println("B>>", B)
fmt.Println("KiB>>", KiB)
fmt.Println("MiB>>", MiB)
fmt.Println("GiB>>", GiB)
fmt.Println("TiB>>", TiB)
fmt.Println("PiB>>", PiB)
fmt.Println("EiB>>", EiB)
}
输出:
B>> 1
KiB>> 1024
MiB>> 1048576
GiB>> 1073741824
TiB>> 1099511627776
PiB>> 1125899906842624
EiB>> 1152921504606846976
写入自己的博客中才能记得长久
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
2022-03-10 go 的workpool 线程池
2022-03-10 go single chan
2022-03-10 go runtime 多进程循环问题
2022-03-10 go waitgroup
2022-03-10 go map和切片结合使用,map 排序,删除
2022-03-10 go nobuf chan
2022-03-10 go buf chan