dsjbest2014
2016-07-23 16:13
浏览 83
已采纳

将一个元素附加到零切片将容量增加两个

I have a nil slice:

var s1 []int // len(s1) == 0, cap(s1) == 0

Which I append one element to:

s2 := append(s1, 1) // len(s2) == 1, cap(s2) == 2

Why is appending one element to a nil slice increases the capacity by 2?

Printing the slices using fmt.Printf shows the following:

[] // s1
[1] // s2

I am also confused about why re-slicing s2[0:2] shows a zero which was not in the original slice nor appended to it:

[1,0] // s2[0:2]

图片转代码服务由CSDN问答提供 功能建议

我有一个零切片:</ p>

  var s1 []  int // len(s1)== 0,cap(s1)== 0 
 </ code> </ pre> 
 
 

我将一个元素附加到以下位置:</ p>

  s2:= append(s1,1)// len(s2)== 1,cap(s2)== 2 
 </ code> </ pre> 
 
 

< strong>为什么将一个元素附加到nil切片上会使容量增加2?</ strong> </ p>

使用 fmt.Printf </ code>打印切片显示以下内容: </ p>

  [] // s1 
 [1] // s2 
 </ code> </ pre> 
 
 

我也很困惑为什么 重新切片 s2 [0:2] </ code>会显示一个零,该零既不在原始切片中也不附加在原始切片上:</ p>

  [1,0]  // s2 [0:2] 
 </ code> </ pre> 
 </ div>

4条回答 默认 最新

相关推荐 更多相似问题