不可以,容量不能少于长度。
切片是对数组一部分的引用。切片的容量代表该后备阵列的大小。如果其长度大于其容量,则使用什么内存?
以下不变量始终对slice s有效(除非您做了不安全的 *** 作):
0 <= len(s) <= cap(s)
您的代码会产生运行时错误,而不是编译时错误,因为该错误无法始终被静态检测到。在您的情况下可以,但是请考虑以下代码:
package mainimport ( "fmt" "rand")func main() { k := make([]int, rand.Int(), rand.Int()) fmt.Println(k)}
直到运行时才能知道传递给make的值。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)