常量

定义

常量

布尔型字符串类型数值型

字面常量

字面常量通常指的是程序中硬编码的常量:

如:
66 数值常量
3.1415926 浮点型常量
1.8 + 66i 复数类型的常量
true 布尔类型常量
"cat" 字符串常量

intuintint32int64float32float64complex64complex128

常量的定义

Go语言的常量的定义可以限定常量类型,但是也可以不用,它和变量一样,如果定义的时候,没有指定类型,那么程序运行中,会概把字面常量把常量的类型给推导出来。

显式类型定义

显示定义常量,就是把常量的类型写出来。

    const PATH string = "http://www.baidu.com"  //定义一个百度网址常量字符串
    const PI float64 = "3.1415926"  //定义一个圆周率的常量

隐式类型定义

隐式写义常量就是定义的时候不写类型。

    const NAME = "张三"   //不写变量的类型
    const SIZE = 1024      

Go语言的常量可以定义的时候,右值也可以是一个编译期的运算的常量表式。如:

    const num = 2 << 2

这是因为常量的赋值是在编译期进行的,所以可以出现也是编译期运行的常量的表达式,但是如果是编译期值还在变动的是不行的。

批量定义常量

const
const(
    a = 1
    b = 2
    c = 3
)

根据上面的方法,我们可以批量的定义一组常量,并且还好管理,我们可以把同一类型的常量定义到一个const里面,这样可以使得代码更加的清晰。

预定义常量

truefalseiotaiotaconstconstiota
//我们一般结合着const()来使用iota
//如些上面的代码就可以改为
const(
    a = iota    //0
    b = iota    //1
    c = iota    //2
)

这和上面的代码的效果是一样的。
也可以这样写:

const(
    a = iota    //0
    b            //1
    c            //2
)

这样可以更加的简单一点,并且这样是因为,Go语言里面如果一组常量里面,如果某个常量 没有初始值,那么默认和上一行一致。


我们还可以在这里面运用表达式。

const(
    a = 1 << iota   //0
    b                   //2
    c                   //4
)

枚举

Go语言枚举类型枚举类型常量
const(
    MONDAY = 1 + iota
    TUESDAY
    WEDNESDAY
    THURSDAY
    FRIDAY
    SATURDAY
    SUNDAY
)

上面是一个星期的枚举类型的定义。



关注公众号,随时获取最新资讯

细节决定成败!
个人愚见,如有不对,恳请斧正!