golang数组与切片
发布时间:2020-12-16 09:31:47 所属栏目:大数据 来源:网络整理
导读:golang中坑的慢慢踩! 我们都知道golang中的切片是引用类型,但是在函数中使用append给切片追加元素是行不通的,需要使用切片的指针类型才能增加元素 数组的使用: package mainimport ( " fmt " )func ChangeArr(arr [ 5 ] int ) { arr[ 0 ] = 6 }func Chan
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,5} PrintArr(a) ChangeArr(a) PrintArr(a) ChangeArr2(&a) PrintArr(a) } func PrintArr(arr []int) { fmt.Println("n打印切片:") for _,") } } 运行结果: (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |