func SliceAppend() ([5]int, []int) {
ia := [...]int{1, 2, 3, 4, 5}
ia2 := ia[1:3]
ia2 = append(ia2, 6, 7, 8, 9)
fmt.Println("*************************")
fmt.Println("Type of ia is: ", reflect.TypeOf(ia))
fmt.Println("Type of ia2 is: ", reflect.TypeOf(ia2))
fmt.Println("*************************")
return ia, ia2
}
输出这个样子:
*************************
Type of ia is: [5]int
Type of ia2 is: []int
*************************
为什么两个返回的数组类型不一样?新手不太懂
不是说这个要看内存布局么,如果是逃逸了,两个都一样, 否则是数组成本低,因为每次都复制,没有GC压力?切片如果不逃逸的话是比复制成本低?有点糊涂了
#6
更多评论