Go语言学习(2)-常量

常量

1、常量定义
通过const关键字

func main(){
    const pi float64 = 3.1415926
    const zero = 0.0 //无类型浮点常量
    const(
        size int64 =1024
        eof = -1
    )
    const u,v float32 =0,3 //多重赋值
    const a,b,c = 3,4,"foo"
    //常量的赋值是一个编译器行为,所以右值不能出现任何需要运行期才能得出结果的表达式

}

2、预定义常量
Go语言预定义了这些常量:true、false、iota
iota比较特殊,可以被认为是一个可被编译器修改的常量,在每个const关键字出现时被重置为0,然后在下一个const出现之前,每出现一次iota,所代表的的数字就会自动增1。

func main(){

    const ( // iota被重设为0
        c0 = iota // c0 == 0
        c1 = iota // c1 == 1
        c2 = iota // c2 == 2
    )
    const (
        a = 1 << iota // a == 1 (iota在每个const开头被重设为0)
        b = 1 << iota // b == 2
        c = 1 << iota // c == 4
    )
    const (
        u = iota * 42 // u == 0
        v float64 = iota * 42 // v == 42.0
        w = iota * 42 // w == 84
    )
    const x = iota // x == 0 (因为iota又被重设为0了)
    const y = iota // y == 0 (同上)
    //如果两个const的赋值语句的表达式是一样的,那么可以省略后一个赋值表达式。因此,上
    //面的前两个const语句可简写为:
    const ( // iota被重设为0
        c00 = iota // c00 == 0
        c01 // c01 == 1
        c02 // c02 == 2
    )

    const (
        a0 = 1 <<iota // a0 == 1 (iota在每个const开头被重设为0)
        b0 // b0 == 2
        c0 // c0 == 4
    )

}

3、枚举
Go语言不支持enum关键字
下面是常规的枚举表示法,其中定义了一系列的整型常量

func main(){
    const (
        Sunday = iota
        Monday
        Tuesday
        Wednesday
        Thursday
        Friday
        Saturday
        numberOfDays // 这个常量没有导出,由于是小写字母开头的
    )
//  同Go语言的其他符号(symbol)一样,以大写字母开头的常量在包外可见。
//  以上例子中numberOfDays为包内私有,其他符号则可被其他包访问。
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值