Go Lang 实战

Go常量(一)

2019-07-30  本文已影响0人  草莓君_

常量表示运行时恒定不可改变的值。常量可以避免使用魔法数字。
常量值必须是编译器可确定的字符、字符串、数字或布尔值
可指定常量类型,由编译器通过初始化值推断

const x, y int = 123, 0x22
const s = "hello, world"
const c = '常'
const (
    i, f = 1, 0.123
    b = false
)

1.在函数代码块中,未使用的常量不会引发编译错误

func main() {
    const x = 123
    println(x)

    const y = 1.23   //未使用,不会引发编译错误
    {
        const x = "abc"   //在不同作用域定义同名常量
        println(x)
    }
}

输出:

123
abc

2.显式指定类型时,必须确保左右值类型一致,可做显式转换。右值不能超出常量类型取值范围,否则引发益处错误。

const (
    x, y int = 99, -999 
    b byte = byte(x) //x 被指定为int类型,需显式转换为byte类型
    n = uint8(y)     //错误 constant -999 overflows uint8
)

3.在常量组中,如果不指定类型和初始化值,则默认与上一行非空常量右值相同

func main() {
    const (
        x uint16 = 120
        y
        s = "abc"
        z
    )
    fmt.Printf("%T, %v\n", y, y)
    fmt.Printf("%T, %v\n", z, z)
}

输出:

uint16, 120
string, abc
上一篇 下一篇

猜你喜欢

热点阅读