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次方变化。

最新文章

  1. java连接Oracle数据库
  2. 知方可补不足~sqlserver中的几把锁~续
  3. yii2 小技巧
  4. cocos2dx 3.x(常见的46种动作)
  5. Tomcat 在win7/win8 系统下tomcat-users.xml.new(拒绝访问)解决方法
  6. Map.entrySet() 简介
  7. Jquery zTree实例
  8. hdu_5324_Boring Class(cdq分治+树状数组)
  9. js原型学习
  10. 【Unity3D】Unity3D开发《我的世界》之三、创建一个Chunk
  11. MySQL二进预编译制安装
  12. GitHub 1W star 成就达成!
  13. 用户在浏览器中输入一个url发生的奥秘
  14. Java岗 面试考点精讲(基础篇01期)
  15. ACM学习&lt;二&gt;
  16. Python基础二字符串和变量
  17. .Net Core 2.0 生态(1).NET Standard 2.0 特性介绍和使用指南
  18. 《Gradle权威指南》--Android Gradle多项目构建
  19. 转:在网站开发中很有用的8个 jQuery 效果【附源码】
  20. 第11月第8天 ffmpeg ffplay

热门文章

  1. Create an ASP.NET Core web app in Visual Studio Code
  2. 学习 shell —— 创建序列数组
  3. js 判断浏览器是否滚动到底部
  4. LINUX上使用GDB单步调试Chromium Android C++代码。
  5. 2008R2域控环境中 应用组策略 实现禁用USB设备使用
  6. spark系统实现yarn资源的自动调度
  7. JAVA 并发编程-线程范围内共享变量(五)
  8. 线段树 hdu3642 Get The Treasury
  9. 用Maven创建SpringMVC项目
  10. Sparse Autoencoder(一)