美文网首页
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

    golang携程调度,runtime包 golang内存模型 csp原理 context的原理 slice底层结构...

  • Golang Slice原理

    结构 扩容策略 当要扩成的大小newCap>2*currentCap,扩为newCap 当currentCap<1...

  • golang 切片小结

    golang slice

  • golang slice的误解

    slice的介绍: 在golang的官方文档中,我们发现golang除了有array的数据还有一个slice,而a...

  • Learn Golang in 21 Days - Day 10

    Learn Golang in 21 Days - Day 10 知识点 切片Slice Slice是对数组的抽象...

  • What the official tutorial didn'

    Whoever follow the Golang official tutorial about Slice t...

  • go array 1:2:3 解释

    https://golang.org/ref/spec#Slice_expressions

  • golang slice

    关于golang slice有很多大神写了很多文章,阐述了slice的底层实现和使用中注意点.这篇文章是我参考ht...

  • Golang slice

    创建切片,len、cap、append 上述代码是生成默认占用5个0值的切片,下面的输出结果是另一回事 上述代码是...

  • slice in golang

    在go语言中,数组是有特定长度和元素类型共同组成的一种类型,比如[4]int表示4个integer。而[4]int...

网友评论

      本文标题:Golang Slice原理

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