秋日的晚霞 2022-06-27 11:52 采纳率: 94.4%
浏览 8
已结题

go 原始容量大于1024 扩容机制问题求解

go 扩容问题


//情景二 :  如果需要的容量 小于 当前容量 * 2 且 当前容量 少于 1024

    s1 := make([]int, 1022, 1024) // 原有容量大于等于 1024 则 扩容规则为  oldcap + = oldcap *0.25  则结果应为  1280

    fmt.Printf("原始切片的长度 %d 切片容量 %d \n", len(s1), cap(s1))

    s1 = append(s1, 1, 2, 3)

    fmt.Printf("新切片的长度 %d 切片容量 %d \n", len(s1), cap(s1)) //但实际结果为 1536
    //输出结果

输出结果

img

按照扩容规则 新的容量大小应该为 1280 才对 但输出结果 新的容量大小为 1536

  • 写回答

1条回答 默认 最新

报告相同问题?

问题事件

  • 系统已结题 7月5日
  • 已采纳回答 6月27日
  • 创建了问题 6月27日