slice这两种方式赋值有什么区别

来源:3-3 切片的操作

毛兴峰

2021-08-03

nums := []int{1, 2, 3, 4, 5}
nums1 := append([]int(nil), nums…)
nums2 := nums

nums1 和 nums2有什么区别吗,我在通过下标获取值的时候,第二种会报错,index out of range [4] with length 4

写回答

1回答

ccmouse

2021-08-08

它们的capacity不一样。我们查看cap(nums1)和cap(nums2),它们本别是6和5。

不过[4]都是取得出来的。同学可能代码有问题。如果还有问题可以贴到https://play.studygolang.com/ 然后分享出来。

0
0

Google资深工程师深度讲解Go语言 由浅入深掌握Go语言

语法+分布式爬虫实战 为转型工程师量身打造

5995 学习 · 1909 问题

查看课程