go slice问题

    data := [...]int{0, 1, 2, 3, 4, 5, 6}
    slice := data[1:4:5]
    fmt.Println(slice, len(slice), cap(slice))
    //output:[1 2 3] 3 4

这个“1:4:5”后面的5是啥意思啊?那么这slice跟[1:4]有什么区别呢?

阅读 2.6k
2 个回答

看这个 https://golang.org/doc/go1.2#...

slice = array[2:4:7]
its capacity is now only 5 elements (7-2).

搜了最新的golang文档居然没有第三个index的解释也是醉了 只有1.2的才有

第三个参数 - 第一个参数是现在的capacity 也就是新数组的容量.

按照你的代码 slice的长度length=4-1;cap(容量)=5-1 ;

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题