Bootstrap

【Go专家编程——常见数据结构的实现原理iota】

1.测试题

我们知道iota常用于const表达式中,还知道其值从零开始,const声明块中每增加一行,iota值自增1。

1.1 题一

下面每个常量的值是多少

const (
	num1 = iota	//0
	num2		//1
	num3		//2
	num4		//3
)

1.2 题二

const (
	num1 = 1<<iota	//1
	num2			//2
	num3			//4
	num4 = iota		//3
	num5 = 1e6		//1000000
)

1.3 题三

const (
	num1,arr1 = 1<<iota,1<<iota - 1	//1,0 
	num2,arr2						//2,1
	_,_						
	num3,arr3						//8,7
)

2. 特性速览

从编辑器角度看iota,其取值规则只有一条

  • iota代表了const声明块的行索引(下标从0开始)
  • const 声明的一个特点,即如果为常量指定了一个表达式,但后续的常量没有表达式,则继承上面的表达式。
;