为什么切片长度大于容量长度会导致运行时错误?

为什么切片长度大于容量长度会导致运行时错误?,第1张

为什么切片长度大于容量长度会导致运行时错误?

不可以,容量不能少于长度。

切片是对数组一部分的引用。切片的容量代表该后备阵列的大小。如果其长度大于其容量,则使用什么内存?

以下不变量始终对slice s有效(除非您做了不安全的 *** 作):

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

您的代码会产生运行时错误,而不是编译时错误,因为该错误无法始终被静态检测到。在您的情况下可以,但是请考虑以下代码:

package mainimport (    "fmt"    "rand")func main() {    k := make([]int, rand.Int(), rand.Int())    fmt.Println(k)}

直到运行时才能知道传递给make的值。



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5125856.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-17
下一篇 2022-11-17

发表评论

登录后才能评论

评论列表(0条)

保存