golang切片类型

Posted csir

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了golang切片类型相关的知识,希望对你有一定的参考价值。

切片slice

  • 其本身并不是数组,它指向底层的数组
  • 作为变长数组的替代方案,可以关联底层数组的局部或全部
  • 为引用类型
  • 可以直接创建或从底层数组获取生成
  • 使用len()获取元素个数,cap()获取容量
  • 一般使用make()创建
  • 如果多个slice指向相同底层数组,其中一个的值改变会影响全部
  • make([]T,len,cap)
  • 其中cap可以省略,则和len的值相同
  • len表示存数的元素个数,cap表示容量

slice的定义方式

package main

import (
    "fmt"
)

func main() {
    /*
    a := [10]int{}
    fmt.Println(a)
    s1 := a[5:]
    // s1 := a[5:len(a)]
    // s1 := a[5:10]
    fmt.Println(s1)
    */
    s1 := make([]int,3,10)
    fmt.Println(s1,len(s1),cap(s1))
}

slice与底层数组的对应关系

技术分享图片

以上是关于golang切片类型的主要内容,如果未能解决你的问题,请参考以下文章

golang 基础 ——map数组切片 存放不同类型的数据

golang 基础 ——map数组切片 存放不同类型的数据

Golang按名称排序切片[关闭]

goLang实现不同类型的切片间互转

Golang数据类型 切片(slice)

《Go题库·1》Golang里的数组和切片有了解过吗?