append存在改变原有数组的问题
package main
import (
"fmt"
)
func main() {
nums:=[]int{1,2,3}
fmt.Println(cap(nums))
_ =append(nums,4)
fmt.Println(nums)
nums = []int{1, 2, 3}
_ = append(nums[:2], 4)
fmt.Println("test1:", nums)
nums = []int{1, 2, 3}
c := append(nums[:2], []int{4, 5, 6}...)
fmt.Println("test2:", nums)
fmt.Println("cc:", c)
var s []int
ret_int:=changeSlice(s)
fmt.Println(s)
fmt.Println(ret_int)
}
func changeSlice(str []int)[]int{
str=append(str,1)
str=append(str,2)
fmt.Println("data",len(str),cap(str))
return str
}
输出结果
3
[1 2 3]
test1: [1 2 4]
test2: [1 2 3]
cc: [1 2 4 5 6]
data 2 2
[]
[1 2]