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

Go 中切片的 len() 可以大于 cap() 吗?

Go 中切片的 len() 可以大于 cap() 吗?

Go
POPMUISE 2022-06-13 10:23:27
https://github.com/google/codesearch/blob/master/index/write.go#L498上面的页面中提到了以下代码。可以len()大于cap()?我认为应该在这里使用=而不是。>=谢谢。    if len(b.buf) >= cap(b.buf) {
查看完整描述

1 回答

?
茅侃侃

TA贡献1842条经验 获得超21个赞

规格:长度和容量:

切片的容量是在底层数组中分配空间的元素的数量。在任何时候,以下关系都成立:

0 <= len(s) <= cap(s)

所以不,切片的长度不能大于其容量。

在引用的代码len(b.buf) == cap(b.buf)中就足够了,它可能是以其他方式计算的代码长度(例如,包括要附加的东西的长度),这将是有意义的。然后可能是代码被更改/重写,但不是关系。


查看完整回答
反对 回复 2022-06-13
  • 1 回答
  • 0 关注
  • 103 浏览
慕课专栏
更多

添加回答

举报

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