切片(slice)是 Golang 中一种比较特殊的数据结构,这种数据结构更便于使用和管理数据集合。切片是围绕动态数组的概念构建的,可以按需自动增长和缩小。

通过 make() 函数创建切片

使用 Golang 内置的 make() 函数创建切片,此时需要传入一个参数来指定切片的长度:

// 创建一个整型切片// 其长度和容量都是 5 个元素slice := make([]int, 5)

此时只指定了切片的长度,那么切片的容量和长度相等。也可以分别指定长度和容量:

// 创建一个整型切片// 其长度为 3 个元素,容量为 5 个元素slice := make([]int, 3, 5)

分别指定长度和容量时,创建的切片,底层数组的长度是指定的容量,但是初始化后并不能访问所有的数组元素。

注意,Golang 不允许创建容量小于长度的切片,当创建的切片容量小于长度时会在编译时刻报错:

// 创建一个整型切片// 使其长度大于容量myNum := make([]int, 5, 3)

通过字面量创建切片

另一种常用的创建切片的方法是使用切片字面量,这种方法和创建数组类似,只是不需要指定[]运算符里的值。初始的长度和容量会基于初始化时提供的元素的个数确定:

// 创建字符串切片// 其长度和容量都是 3 个元素myStr := []string{"Jack", "Mark", "Nick"}// 创建一个整型切片// 其长度和容量都是 4 个元素myNum := []int{10, 20, 30, 40}

当使用切片字面量创建切片时,还可以设置初始长度和容量。要做的就是在初始化时给出所需的长度和容量作为索引。下面的语法展示了如何使用索引方式创建长度和容量都是100个元素的切片:

// 创建字符串切片// 使用空字符串初始化第 100 个元素myStr := []string{99: ""}

更多golang知识请关注golang教程栏目。

更多相关文章

  1. 关于Golang切片的三种简单使用方式及区别
  2. go语言中数组和切片的区别是什么?
  3. go语言如何求字符串长度
  4. go语言如何删除切片
  5. 怎样在JavaScript中创建和填充任意长度的数组 [每日前端夜话0x29
  6. Python进阶:迭代器与迭代器切片
  7. Python进阶:自定义对象实现切片功能
  8. Python进阶:切片的误区与高级用法
  9. Python进阶:全面解读高级特性之切片!

随机推荐

  1. go语言和python的区别是什么?
  2. golang和go是一样的吗
  3. Golang可以用来做什么
  4. golint的简易使用方法
  5. golang读取文件是否存在
  6. Golang接口哪里好
  7. golang 嵌入乱码怎么办
  8. Golang格式化符号%b是什么意思
  9. Golang反射为什么慢
  10. golang反射用于什么场景