go语言切片

简介: go语言切片

介绍一下Go语言的切片



(一)切片产生背景


  数组大小限定长度限定并且不可以进行扩容,在固定的条件下非常局限
  切片可以实现对数组的动态切割,可以进行切割、裁剪


(二)切片的定义


(1)使用未知长度的数组


var 切片名 []切片类型


 例如:
  // 定义一个数组
  atemp := [11]int{1, 2, 3, 4, 5, 6, 9, 8, 7, 0}
  // 声明切片,并初始化
  var a []int = atemp[:]
  a1 := atemp[3:]
  a2 := atemp[:6]


(2)使用make进行初始化


make类似于new的作用,但是又有一些不同:
  new(T) 为每个新的类型T分配一片内存,初始化为 0 并且返回类型为*T的内存地址:这种方法 
    返回一个指向类型为 T,值为 0 的地址的指针,它适用于值类型如数组和结构体;它相当于 &T{}。
  make(T) 返回一个类型为 T 的初始值,它只适用于3种内建的引用类型:切片、map 和 channel
初始化方法:
  a:=make(参数1,参数2,参数3)
    参数1:切片类型
    参数2:切片长度
    参数3:切片的容量
    判断一个切片是否满了可以用len()测试切片长度、cap()测试切片容量
    如果切片内的容量满了切片会进行加倍扩容,每次扩大后的容量是原来的两倍
  切片有容量与长度这一概念与数组有本质的区别


 初始化切片并进行扩容(扩容是自动的)
  b := make([]int, 3, 5)
  //append函数参数第一个是目标切片,后来的是加入的参数列表
  //下例将1,2,3加入切片内(加入三次)
  b = append(b, 1, 2, 3)
  b = append(b, 1, 2, 3)
  b = append(b, 1, 2, 3)


(三)空切片初始值为nil


  空切片声明方式:
    var a[]int


目录
相关文章
|
16天前
|
Go
go语言中的数据类型
go语言中的数据类型
13 0
|
21天前
|
Go 开发者
掌握Go语言:Go语言结构体,精准封装数据,高效管理实体对象(22)
掌握Go语言:Go语言结构体,精准封装数据,高效管理实体对象(22)
|
21天前
|
安全 Go
掌握Go语言:Go语言通道,并发编程的利器与应用实例(20)
掌握Go语言:Go语言通道,并发编程的利器与应用实例(20)
|
21天前
|
存储 缓存 安全
掌握Go语言:Go语言中的字典魔法,高效数据检索与应用实例解析(18)
掌握Go语言:Go语言中的字典魔法,高效数据检索与应用实例解析(18)
|
22天前
|
Go
使用Go语言发邮件
使用Go语言发邮件
20 2
|
3天前
|
数据采集 存储 Go
使用Go语言和chromedp库下载Instagram图片:简易指南
Go语言爬虫示例使用chromedp库下载Instagram图片,关键步骤包括设置代理IP、创建带代理的浏览器上下文及执行任务,如导航至用户页面、截图并存储图片。代码中新增`analyzeAndStoreImage`函数对图片进行分析和分类后存储。注意Instagram的反爬策略可能需要代码适时调整。
使用Go语言和chromedp库下载Instagram图片:简易指南
|
21天前
|
存储 安全 Go
掌握Go语言:Go语言类型转换,无缝处理数据类型、接口和自定义类型的转换细节解析(29)
掌握Go语言:Go语言类型转换,无缝处理数据类型、接口和自定义类型的转换细节解析(29)
|
21小时前
|
Go
Golang深入浅出之-Go语言函数基础:定义、调用与多返回值
【4月更文挑战第21天】Go语言函数是代码组织的基本单元,用于封装可重用逻辑。本文介绍了函数定义(包括基本形式、命名、参数列表和多返回值)、调用以及匿名函数与闭包。在函数定义时,注意参数命名和注释,避免参数顺序混淆。在调用时,要检查并处理多返回值中的错误。理解闭包原理,小心处理外部变量引用,以提升代码质量和可维护性。通过实践和示例,能更好地掌握Go语言函数。
9 1
Golang深入浅出之-Go语言函数基础:定义、调用与多返回值
|
1天前
|
程序员 Go API
【Go语言快速上手(二)】 分支与循环&函数讲解
【Go语言快速上手(二)】 分支与循环&函数讲解
|
2天前
|
Go
Golang深入浅出之-Go语言基础语法:变量声明与赋值
【4月更文挑战第20天】本文介绍了Go语言中变量声明与赋值的基础知识,包括使用`var`关键字和简短声明`:=`的方式,以及多变量声明与赋值。强调了变量作用域、遮蔽、初始化与零值的重要性,并提醒读者注意类型推断时的一致性。了解这些概念有助于避免常见错误,提高编程技能和面试表现。
16 0