go語言中[]*int和*[]int的具體使用

[]*int是一個指向指針的切片,本質上是切片,隻不過切片裡面存放的元素是指針;
*[]int是一個指向切片的指針,本質上是指針,可以用*來獲取切片;

簡易記法:從右往左讀,最後一個符號是[],說明是切片,倒數第二個符號是*說明切片裡是指針;從右往左讀,最後一個符號是*,說明是指針,倒數第二個符號是[]說明指針指向一個切片類型。

對於[]*int,可以使用for _, ptr := range slice獲得切片裡面的指針,並通過*ptr得到切片裡的元素(本質上是指針/地址)對應的值。
對於*[]int,可以使用*slice獲得整個切片。

[]*int

func main() {
    var a = 1
    var b = 2
    var slice []*int
    slice = append(slice, &a)
    slice = append(slice, &b)
    for _, ptr := range slice {
        fmt.Print(*ptr, " ")
    }
}

輸出:1 2 

*[]int

func main() {
    var a = 1
    var b = 2
    var slice *[]int
    arr := []int{a, b}
    slice = &arr
    fmt.Println(*slice)
}

輸出:[1 2]

到此這篇關於go語言中[]*int和*[]int的具體使用的文章就介紹到這瞭,更多相關go語言 []*int和*[]int內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!

推薦閱讀: