1. 程式人生 > >golang數組與切片

golang數組與切片

code 指針 ima 圖片 添加 UNC image arr 追加元素

golang中坑的慢慢踩!

我們都知道golang中的切片是引用類型,但是在函數中使用append給切片追加元素是行不通的,需要使用切片的指針類型才能增加元素

數組的使用:

package main

import (
    "fmt"
)

func ChangeArr(arr [5]int) {
    arr[0] = 6
}

func ChangeArr2(arr *[5]int) {
    arr[0] = 6
}

func main() {
    a := [5]int{1, 2, 3, 4, 5}
    PrintArr(a)
    ChangeArr(a)
    PrintArr(a)
    ChangeArr2(
&a) PrintArr(a) } func PrintArr(arr [5]int) { fmt.Println("\n打印數組:") for _, v := range arr { fmt.Print(v, ",") } }

運行結果:

技術分享圖片

切片的使用:

package main

import (
    "fmt"
)

func ChangeArr(arr []int) {
    arr[1] = 20
    arr = append(arr, 8) //此處的元素並沒有增加到切片
}

func ChangeArr2(arr 
*[]int) { (*arr)[0] = 6 //因為傳入的是切片指針,所以所有使用切片的地方都必須是指針類型的切片(這裏與數組不同) *arr = append(*arr, 7) //此處的元素添加進了切片 } func main() { a := []int{1, 2, 3, 4, 5} PrintArr(a) ChangeArr(a) PrintArr(a) ChangeArr2(&a) PrintArr(a) } func PrintArr(arr []int) { fmt.Println(
"\n打印切片:") for _, v := range arr { fmt.Print(v, ",") } }

運行結果:

技術分享圖片

golang數組與切片