Overview
- const: 用来定义常量,常量一般用在全局上
- 常量简写
- 因式分解
- iota: 计数器,每一个iota都会重新开始计数
- 特征
- iota是const专用,只会在const中出现
- 1)const遇到iota,会初始化iota为0
- 2)const中如果上一行没有写任何值,则下一行和上一行的值一致
- 3)iota每新增一行都递增1
- iota是const专用,只会在const中出现
Description
1)常量简写
定义常量
package main
import "fmt"
func main() {
const name string = "Jeremy"
fmt.Println(name)
}
常量简写

package main
import "fmt"
func main() {
const name = "Jeremy"
fmt.Println(name)
}
但不支持将const也省略
2)因式分解

package main
import "fmt"
func main() {
const (
v1 = 1
v2 = 5
name string = "Jeremy"
result bool = false
age int = 18
)
fmt.Println(v1, v2, name, result, age)
}
3)iota
-
自增

package main
import "fmt"
func main() {
const (
n1 = iota
n2
n3
n4
)
fmt.Println(n1, n2, n3, n4)
}
iota默认是从0开始
-
从指定数字开始

package main
import "fmt"
func main() {
const (
n1 = iota + 1
n2
n3
n4
)
fmt.Println(n1, n2, n3, n4)
}
给iota可以进行加数字来改变初始值
-
跳过某个数字

package main
import "fmt"
func main() {
const (
n1 = iota + 1
n2
_
_
n3
n4
)
fmt.Println(n1, n2, n3, n4)
}
_ 可以用来跳过某个值
-
多iota重新计数

package main
import "fmt"
func main() {
const (
n1 = iota
n2
n3
n4
)
const (
v1 = iota
v2
v3
v4
)
fmt.Println(n1, n2, n3, n4)
fmt.Println(v1, v2, v3, v4)
}
新的iota不会对前一个iota进行累加,新的iota会重新开始新一轮的计数
4)特征
1)const遇到iota,会初始化iota为0
package main
import "fmt"
func main() {
const a = iota //const遇到iota后,初始化iota为0
fmt.Println(a)
}
结果是 0
2)const中如果下一行没有写任何值,则下一行和上一行的值一致
package main
import "fmt"
func main() {
const (
a = 100
b = 1000
c //没有写任何值,则和上一行值一致,也就是c=1000
d //没有写任何值,则和上一行值一致,也就是d=1000
)
fmt.Println(a, b, c, d)
}
结果是:100,1000,1000,1000
3)iota每新增一行都递增1
package main
import "fmt"
func main() {
const (
a, b = iota + 1, iota + 2 //const遇到iota会将iota初始化为0,所以就是0+1,0+2
c, d //没有写任何值,所以和上一行值一致,所以是iota+1,iota+2, 由于iota每新增一行递增1,所以也就是1+1,1+2
e, f //没有写任何值,所以和上一行值一致,所以是iota+1,iota+2, 由于iota每新增一行递增1,所以也就是2+1,2+2
)
fmt.Println(a, b, c, d, e, f)
}
所以结果是:1,2,2,3,3,4
939

被折叠的 条评论
为什么被折叠?



