golang數組與切片
阿新 • • 發佈:2018-12-04
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數組與切片