【发布时间】:2020-08-01 00:59:45
【问题描述】:
在Go Programming Language 书中,作者陈述了以下内容(在关于切片的第 4.2 节):
[切片的]长度是切片元素的数量;它不能超过容量,通常是切片开头和底层数组结尾之间的元素数。
问题
由于作者选择使用“通常”这个词,这意味着实际上存在切片的容量与切片开始之间的元素数量不同的情况以及底层数组的结尾---什么时候会这样?
也就是说,下面的表达式什么时候会是true:
cap(mySlice) != len(underlyingArray) - startIndexOfSlice
我能想到的唯一情况是切片是nil,在这种情况下将没有底层数组。
【问题讨论】: