Go 學習之路:引用類型與值類型

Golang中只有三種引用類型:slice(切片)、map(字典)、channel(管道);

引用類型

  • 引用類型理解爲(C語言):指針

值類型

  • 值的拷貝

下面以值類型和slice(切片)例子可知:數組

package main

import "fmt"

func main(){
    a := [5]int{2, 3, 4, 5, 6}
    b := a
    fmt.Println(a,b)
    b[2] = 77
    fmt.Println(a,b)
}

上面定義了一個數組a,它是值類型,複製給b是copy,當b發生變化後a並不會發生任何變化,結果以下:
值引用spa

package main

import "fmt"

func main(){
    a := []int{2, 3, 4, 5, 6}
    b := a
    fmt.Println(a,b)
    b[2] = 77
    fmt.Println(a,b)
}

上面定義了一個數組a,它是引用類型(slice切片),被b引用(指針)後,當b發生變化後a也發生任何變化,結果以下:
引用類型指針

做者:不動峯
博客園: http://www.cnblogs.com/mylly/ 版權全部,歡迎保留原文連接進行轉載:)
相關文章
相關標籤/搜索