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
posted @   ty1539  阅读(23)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有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
点击右上角即可分享
微信分享提示