美文网首页
golang slice 创建

golang slice 创建

作者: beiciye | 来源:发表于2017-09-04 13:58 被阅读0次

slice 的创建有两种方法

test := []int{2,3}

或者是使用make,而且通常我们使用 make创建的情况比较多

例如:

test := make([]int, 5, 5)                      // 创建一个类型为 int,长度为 5,容量为 5 的切片

fmt.Println(len(test), cap(test))          //  5 5

test1 := make([]int, 3)                        //如果不指定容量,默认容量等于初始时的长度

fmt.Println(len(test1),cap(test1))        // 3 3

slice 的长度和容量可以自己是可以动态改变的, slice 其实是数组的某一部分

test := make([]int,0)                              // 创建一个长度为0,容量为0 的数组

fmt.Println(len(test),cap(test))               // 0 0

test = append(test, 1)

fmt.Println(len(test),cap(test))              // 1 1

test = append(test, 1)

fmt.Println(len(test),cap(test))              // 2 2

test = append(test, 1)

fmt.Println(len(test),cap(test))              // 3 4

当数组的容量不够时,会重新申请一个两倍于当前长度的 slice,所以在使用过程中,尤其是频繁去往一个 slice 中 append 数据,需要尽可能给一个相对准确的容量, 减少分配过程的损耗。

相关链接:

切片的复制与追加

相关文章

  • golang slice 创建

    slice 的创建有两种方法 test := []int{2,3} 或者是使用make,而且通常我们使用 make...

  • golang 切片小结

    golang slice

  • golang slice的误解

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

  • golang make创建slice,map,channel

    1.slice make([]Type,len) //cap=len make([]Type,len,cap) 2...

  • 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

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

  • golang slice

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

  • Golang slice

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

网友评论

      本文标题:golang slice 创建

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