【发布时间】:2021-10-28 03:47:03
【问题描述】:
有人可以帮助解释为什么这段代码会改变原始数组 a 的 Golang 内部原理吗?
func main() {
a := []int{1,2,3,4}
b := a
b = append(b[0:1], b[2:]...)
fmt.Println(b)
fmt.Println(a)
}
输出:
[1 3 4]
[1 3 4 4]
我认为b := a 会按值传递。提前致谢。
【问题讨论】:
-
您可以使用 three-index slice expression 将切片
b从切片a中“分离”:play.golang.org/p/olHOm9A60xE