我是围棋新手,正在读一本由O‘Reilly出版的名为《学习围棋》的书.在阅读有关Slice的文章时,有一条声明如下:
要增加存储片的大小,从GO 1.14开始,其规则是将容量加倍,直到达到1024个存储片的大小,然后以25%的速度增长.我写了一个简单的围棋代码来证明这一点.
package main
import "fmt"
func main() {
var length uint16 = 1024
var x []int
for i := 0; i < int(length); i++ {
x = append(x, i)
fmt.Printf("\nLength is %d. Capacity is %d", len(x), cap(x))
}
}
从0到len(X)==512已被证明Go运行时使容量加倍(也称为大小)是真的.但对我来说,有趣的部分从这里开始:当len(X)>;=512时,我预计容量是1024,即512*2=1024.然而,结果如下:
Length is 513. Capacity is 848
个
因此,这大约是65%的增长.有人能给我解释一下吗?