为了账号安全,请及时绑定邮箱和手机立即绑定

Go 切片中的长度和容量

Go 切片中的长度和容量

Go
大话西游666 2021-11-29 17:01:16
假设我们有这样的切片b:= make([]int, 0, 5) // length: 0, cap: 5和由“b”切片制成的“c”切片c:= b[:2]  // length: 2 (?), cap: 5问题是为什么我们的“c”长度为 2?我也期待长度为零,就像 b,因为我们正在用 b 制作 c
查看完整描述

1 回答

?
守着一只汪

TA贡献1872条经验 获得超3个赞

是的,切片可以让您访问len原始切片之外的元素(尽管不能超出其cap,或者谁知道您将访问什么内存)。

这意味着,例如,您可以实现append类似功能,返回一个“增长”的切片,len增加到更接近cap. 也就是说,append的获得之间的区域lencap不仅适用于内置的功能; 你也有。查看Append:关于切片的 Go 博客条目中的示例以查看它已完成(如果有兴趣阅读整篇文章;它有助于使切片作为一个整体有意义)。

关于切片表达式(和切片类型的规范切片技巧页面也可能很有趣。


查看完整回答
反对 回复 2021-11-29
  • 1 回答
  • 0 关注
  • 187 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信