Golang中Const块内Iota首次未从0开始赋值的问题
Golang中Const块内Iota首次未从0开始赋值的问题
以下是我的代码,但根据我的理解,在第一个常量块中首次使用iota时,“aaa”的值应为0,但在这个例子中它却是3,而“bbb”是4,因为它是从3开始的,这是由于第一个常量块中已经存在三个常量(a、pi和str1,对应值0、1、2);这是预期且正确的方式吗?我以为每当我们在常量块中首次声明时,它都应该从0开始。还是我遗漏了什么?谢谢。
package main
import "fmt"
const(
a=35
pi=3.79879889
str1="Jangalapalli"
aaa=iota
bbb
)
const (
aaa1=iota
bbb1
ccc1
ddd1
)
func main() {
fmt.Printf("Value: %v\t type:%T\n",a,a)
fmt.Printf("Value: %v\t type:%T\n",pi,pi)
fmt.Printf("Value: %v\t type:%T\n",str1,str1)
fmt.Printf("Value: %v\t type:%T\n",aaa,aaa)
fmt.Printf("Value: %v\t type:%T\n",bbb,bbb)
fmt.Printf("Value: %v\t type:%T\n",aaa1,aaa1)
fmt.Printf("Value: %v\t type:%T\n",bbb1,bbb1)
fmt.Printf("Value: %v\t type:%T\n",ccc1,ccc1)
fmt.Printf("Value: %v\t type:%T\n",ddd1,ddd1)
}
更多关于Golang中Const块内Iota首次未从0开始赋值的问题的实战教程也可以访问 https://www.itying.com/category-94-b0.html
2 回复
以下是相关文档:Go 语言规范 - Go 编程语言
在常量声明中,预声明标识符
iota表示连续的无类型整数常量。其值是该常量声明中相应 ConstSpec 的索引,从零开始。它可用于构造一组相关的常量:
这基本上意味着,在一个 const 块中,iota 对于第一个定义是 0,对于第二个是 1,对于第三个是 2,依此类推。无论 iota 是否在常量块中使用,都不影响其计数。
更多关于Golang中Const块内Iota首次未从0开始赋值的问题的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html


