美文网首页golang
go常量与变量

go常量与变量

作者: imuzi | 来源:发表于2018-11-01 11:58 被阅读6次

    常量

    常量使用关键字const,常量的数据类型只能是数字型(整数,浮点和复数)、字符串型和布尔型。
    格式:const name type = value

    比如:

    const a = 1
    

    在go语言中,可以省略类型,因为编译器可以根据常量的值来推断类型。
    常量在赋值时,可以使用运算符,比如:

    const b = 1/2
    

    但是最好不要使用自定义函数,因为自定义函数在编译期间并不知道能否获取返回的值,所以无法给常量进行赋值。比如:

    const c = getSum()
    

    但是内置函数可以使用,比如len()。

    常量也支持并行赋值的形式:

    const a, b, c = 1, 2, 3
    

    还可以当做枚举使用:

    const (
        One   = 0
        Two   = 1
        Three = 3
    )
    

    一般在使用枚举是,使用的是iota作为枚举值

    const (
        a = iota
        b
        c = iota + 10
        d
    )
    

    这里a = 0, b = 1 而 d = 13,这是因为iota会自动+1,在iota后加上具体的数值,就等于当前的iota值加上具体的数值,所以c = 12, d = 13.
    iota 在每遇到const关键字是,iota就会重置为0。

    变量

    变量的声明使用的是var关键字: var name type

    也可以声明为指针类型

    vat a *int
    

    同时声明多个变量

    //一般用于全局变量
    var (
        a int
        b string
    )
    //或者
    
    var c, d string
    

    变量被声明之后,系统会自动给变量该类型的零值:

    • int 0
    • float 0.0
    • bool false
    • string 空字符串
    • 指针 nil

    命名的规则遵循驼峰命名法最好,比如firstName,lastName。
    如果你希望全局变量能被其他包使用,只需要将首字母大写即可:Name。

    变量在程序中有自己作用域范围,变量在函数体之外声明,则认为是全局变量,在函数内部声明的则为局部变量,局部变量的作用域只在函数内,参数和返回值也是局部变量。

    变量的声明还可以使用简简短声明 := 比如

    a := 1
    

    写一个列子,获取当前的操作系统类型:

    package main
    
    import (
        "fmt"
        "runtime"
    )
    
    func main() {
        var goos string = runtime.GOOS
        fmt.Println(goos)
        goarch := runtime.GOARCH
        fmt.Println(goarch)
    }
    
    
    image

    微信搜索「goentry-xyz」,关注公众号「灯下独码」

    相关文章

      网友评论

        本文标题:go常量与变量

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