在Go中,nil的slice和空的slice并不完全相同,尽管它们的许多行为在很多情况下是相似的。 nil slice var s []int 在这种情况下,s是一个nil的slice。它的容量和长度都为0,且没有指向任何底层的数组。 空slice s := []int{ } // s := make([]int, 0) 上述两种情况下,s都是一个空的slice,它的长度和容量都为0,但是它又一个非nil的零长度