iota 只能在常量中使用,iota 每遇到一个const 值会增加1,iota 隐式使用法 const(
a,b= iota,iota+3 //0,3
c,d //1,4
e=iota //2
)
同一行的iota 初始值一样
iota主要看他后面跟不跟iota 跟就不用管 数就完了 不跟找上面跟的
一行 常量定义 视为1行 iota
前后两行 使用隐式定义时需要对齐格式
iota这么复杂还要成双成对,图什么呢
iota只能在常量中使用,不能在函数体内使用
iota每遇到const关键字的时候会重置为0
每新增一行常量声明,iota会自动加1
语法太奇葩了,
const (
a=iota*2
b=iota*3
c
)
iota只能在常量定义时候使用,不可以在别的函数里使用
iota跳值使用法:
原来的定义:
const(
a=iota//a=0
b=iota//b=1
c=iota//c=2
)
如果想将c变为3,可以用"_"(变量声明的时候它相当于垃圾桶,常量iota使用的时候它具有使iota加1的功能)
const(
a=iota//a=0
b=iota//b=1
_
c=iota//c=3
)
插队使用法:
const(
a=iota//a=0
b=2
c=iota//c=1
)
就是说不连续用iota赋值,中间插入另外的常量,这就是插队使用法
表达式隐式使用法:
const(
a=iota*2//a=0
b //b自动被赋值为iota*2==1*2==2
c //b自动被赋值为iota*2==2*2==4
)
没有赋值表达式的时候,会被自动赋值为上面遇到的第一个表达式
单行使用法:
const(
a,b=iota,iota+3//a=0,b==0+3==3
c,d //c=iota==1,d=iota+3==1+3==4
f=iota //f==iota==2
)
注意是每一行,iota只加1,不管这一行声明了多少常量
= = (
= = )
(
= = = )
(
= = = )
(
= += * = + )
(
= * )
(
= += )
(){
.() .() .() .() .() .() .() .() .() .() .()
.()
.()
.()
.()
.()
.()
.()
.()
.()
.()
.()
}