slice 默认不是nil吗?怎么打印出来的都是0呢

来源:3-3 切片的操作

Zayn_zhang

2019-12-11

slice 默认初始化不是nil吗?怎么在视频中演示中打印出来的是0呢?

写回答

1回答

ccmouse

2019-12-11

zero value是指:var s1 []int,这里s1是nil,而不是说slice里的元素默认是nil。

后面s2=make([]int, 16),我们的s2不再是nil,而是一个有16个元素的slice。那么每个元素的值是多少呢?是int类型的zero value。int类型的zero value就是0。

如果我们s2=make([]bool, 16),那就是16个false

如果s2=make([][]int, 16),那么才是16个nil,因为它的元素类型是[]int,而[]int我们说了,zero value是nil

2
0

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

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

5995 学习 · 1909 问题

查看课程