美文网首页
Go语言学习(3) - 变量与初始化

Go语言学习(3) - 变量与初始化

作者: 码咖 | 来源:发表于2018-11-26 21:50 被阅读0次

    变量的概念

    变量是计算机语言中存储数据的抽象概念,变量通过变量名访问

    变量的本质是计算机分配的一小块内存,专门用于存放指定数据,在程序运行过程中该数值可以改变

    变量的存储往往具有瞬时性、或者说是临时存储,当程序运行结束,存放该数据的内存就会释放,该变量就会消息

    Go语言的变量名由数字、字母、下划线组成,首个字符不能是数字

    声明变量

    声明变量有多种形式:

    1.未初始化话的标准格式

    var  变量名  变量类型
    

    2.未初始化的批量格式

    不用每行都用 var 声明

    var(
        a int
        b string
        c []float32
        d func() bool
        e struct{
            x int
            y string
          }
    )
    

    未初始化变量的默认值

    • 整型和浮点型变量默认值为 0
    • 字符串默认值为空字符串
    • 布尔型默认值为false
    • 函数、指针变量默认值为 nil
    package main
    
    import "fmt"
    
    func main() {
        var(
            a int
            b string
            c []float32
            d bool
            e []int
            f [3]int
            h int32 = 100
            g func() string
        )
        fmt.Printf("%T , % v \n", a , a)
        fmt.Printf("%T , % v \n", b , b)
        fmt.Printf("%T , % v \n", c , c)
        fmt.Printf("%T , % v \n", d , d)
        fmt.Printf("%T , % v \n", e , e)
        fmt.Printf("%T , % v \n", f , f)
        fmt.Printf("%T , % v \n", h , h)
        fmt.Printf("%T , % v \n", g , g)
    }
    

    输出如下:

    int ,  0 
    string ,  
    []float32 , [] 
    bool , false 
    []int , [] 
    [3]int , [ 0  0  0] 
    int32 ,  100 
    func() string , <nil> 
    

    3.初始化变量的标准格式

    • var 变量名 类型 = 表格式

    4.初始化变量的编译器自动推断类型格式

    • var 变量名 = 表达式

    5.初始化变量的简短声明格式(短变量声明格式)

    • 变量名 := 表达式
    • 使用 := 赋值操作符, := 可以高效的创建一个新的变量,称之为初始化声明
    • 声明语句省略了 var 关键字
    • 声明类型将由编译器自动推断
    • 这是声明变量的首选方式,但是它只能被用在函数体内,而不可以用于全局变量的声明与赋值
    • 该变量名必须是没有定义过的变量,若定义过,将发生编译错误
    • 在多个短变量声明和赋值中,至少有一个新声明的变量出现在左侧中,那么即便有其他变量名可能是重复声明的,编译器也不会报错

    变量多重赋值

    • Go语法中,变量初始化和变量赋值是两个不同的概念,Go语言的变量赋值与其他语言一样,但是Go提供了其他程序员期待已久的多重赋值功能,可以实现变量替换,多重赋值让Go语言比其他语言减少了代码量

    如想要对 q 和 w 变量的值进行互换:

        q := 10
        w := 20
        fmt.Println(q , "   " , w)
    
        q, w = w, q
        fmt.Println(q , "   " , w)
    

    得到的结果为:

    10   20
    20   10
    

    有了变量的多重赋值,就不用像Java中引入第三个变量,来进行两个变量值的互换。

    匿名变量

    • Go语言的函数可以返回多个值,而事实上我们并不是对所有的返回值都用得上,那么就可以使用匿名变量,用“_”下划线替换即可。
    • 匿名变量不占用命名空间,不会分配内存

    欢迎关注我的公众号,第一时间接收文章推送~ 搜索公众号: 码咖 或者 扫描下方二维码:


    qrcode_wx.jpg

    相关文章

      网友评论

          本文标题:Go语言学习(3) - 变量与初始化

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