Go基础-iota枚举
Go里面有一个关键字iota
,这个关键字用来声明enum
的时候采用,它默认开始值是0,const中每增加一行加1:
package main
import(
"fmt"
)
const(
x = iota // x = 0
y = iota // y = 1
z = iota // z = 2
w //常量声明省略值时,默认和之前一个值的字面相同。这里隐式地说w = iota,因此w == 3。其 实上面y和z可同样不用"= iota"
)
const v = iota // 每遇到一个const关键字,iota就会重置,此时v == 0
const (
h, i, j = iota, iota, iota //h=0,i=0,j=0 iota在同一行值相同
)
const (
a = iota //a=0
b = "B"
c = iota //c=2
d, e, f = iota, iota, iota //d=3,e=3,f=3
g = iota //g = 4
)
func main() {
fmt.Println(a, b, c, d, e, f, g, h, i, j, x, y, z, w, v)
}
除非被显式设置为其它值或
iota
,每个const
分组的第一格常量被默认设置为0 第二及后续的常量被默认设置为它前面那个常量的值,如果前面那个常量的值是iota
,则它也被设置为iota
。
Go程序设计的一些规则
Go之所以会那么简洁,是因为它有一些默认的行为:
大写字母开头的变量是可导出的,也就是其它包可以读取的,是公有变量;小写字母开头的即使不可导出的,是私有变量
大写字母开头的函数也是一样,相当于
class
中的带public
关键词的公有函数;小写字母开头的就是有private
- 版权申明:此文如未标注转载均为本站原创,自由转载请表明出处《龙行博客》。
- 本文网址:https://www.liaotaoo.cn/338.html
- 上篇文章:Go基础-array(数组)
- 下篇文章:Go基础-分组声明