go 语言学习笔记 0001 --> iota
2024-08-26 14:52:19
go语言中预置了一个预定义常量 iota
这个东西有个很奇怪的特性,会根据 const 关键字改变值
默认的,iota在const出现的时候会初始化为0,而后不断递加1,直到出现第二个const关键字
const (
countagn1 = 2 << iota // 2 0
countagn2 = 2 << iota // 4 2
countagn3 = 2 << iota // 8 6
)
// 00010 上面的计算结果:iota 不是递加然后加上常量值,而是递加位数,在常量值的二进制数位基础上左移
const (
countagn4 = 3 << iota // 3 0 3*2^0
countagn5 = 3 << iota // 6 1 3*2^1
countagn6 = 3 << iota // 12 2 3*2^2
)
// 00011 所以,口算iota的计算结果,直接在iota的基础上乘以2的iota次方 func main(){
fmt.Println("countagn1",countagn1)
fmt.Println("countagn2",countagn2)
fmt.Println("countagn3",countagn3)
fmt.Println("countagn4",countagn4)
fmt.Println("countagn5",countagn5)
fmt.Println("countagn6",countagn6)
} // OUT countagn1 2
countagn2 4
countagn3 8
countagn4 3
countagn5 6
countagn6 12
结论都写在代码里了,iota对常量的影响并不是相加,而是在常量的二进制数值上进行对应的位移(>>也是可以的),那么由于二进制的表示方式,每位移一次,就是乘以2,所以,常量会以2的iota次方变化。
最新文章
- java连接Oracle数据库
- 知方可补不足~sqlserver中的几把锁~续
- yii2 小技巧
- cocos2dx 3.x(常见的46种动作)
- Tomcat 在win7/win8 系统下tomcat-users.xml.new(拒绝访问)解决方法
- Map.entrySet() 简介
- Jquery zTree实例
- hdu_5324_Boring Class(cdq分治+树状数组)
- js原型学习
- 【Unity3D】Unity3D开发《我的世界》之三、创建一个Chunk
- MySQL二进预编译制安装
- GitHub 1W star 成就达成!
- 用户在浏览器中输入一个url发生的奥秘
- Java岗 面试考点精讲(基础篇01期)
- ACM学习<;二>;
- Python基础二字符串和变量
- .Net Core 2.0 生态(1).NET Standard 2.0 特性介绍和使用指南
- 《Gradle权威指南》--Android Gradle多项目构建
- 转:在网站开发中很有用的8个 jQuery 效果【附源码】
- 第11月第8天 ffmpeg ffplay