[GO]append的扩容
Posted baylorqu
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[GO]append的扩容相关的知识,希望对你有一定的参考价值。
package main import "fmt" func main() { s := make([]int, 0, 1) oldcap := cap(s) for i := 0; i < 20; i++{ s = append(s, i) if newcap := cap(s); oldcap < newcap { fmt.Printf("oldcap %d ===> newcap %d ", oldcap, newcap) oldcap = newcap } } }
它的执行结果为:
oldcap 1 ===> newcap 2 oldcap 2 ===> newcap 4 oldcap 4 ===> newcap 8 oldcap 8 ===> newcap 16 oldcap 16 ===> newcap 32
可以看得出来,当一个append执行达到了切片的容量,它会自动扩容为原来的两倍大小
以上是关于[GO]append的扩容的主要内容,如果未能解决你的问题,请参考以下文章
GO 智能合约cannot use transactionRecordId + strconv.Itoa(id) (type string) as type byte in append(示例代码(代