美文网首页
Golang Slice原理

Golang Slice原理

作者: 一剑光寒十九洲 | 来源:发表于2019-04-17 19:04 被阅读0次

    结构

    type slice struct {
        array unsafe.Pointer    // 底层是个数组
        len   int               // slice元素个数
        cap   int               // 数组容量
    }
    

    扩容策略

    1. 当要扩成的大小newCap>2*currentCap,扩为newCap
    2. 当currentCap<1024时,扩为两倍
    3. 当currentCap>=1024时,currentCap * 1.25 * 1.25 * ... (直到>newCap)

    扩容:memmove(newSlice, oldSilce, lenmem)做内存拷贝

    相关文章

      网友评论

          本文标题:Golang Slice原理

          本文链接:https://www.haomeiwen.com/subject/ibfowqtx.html