Go常量(一)

作者: 草莓君_ | 来源:发表于2019-07-30 16:14 被阅读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
    

    相关文章

      网友评论

        本文标题:Go常量(一)

        本文链接:https://www.haomeiwen.com/subject/mxsnrctx.html