返回

从零开始学 Go 语言:切片系列(一)

后端

从零开始学 Go 语言:切片系列(一)

前言

在上一篇文章中,我们介绍了数组的概念和用法。数组是一种静态数据结构,这意味着它的长度在创建后就不能再改变了。这在某些情况下可能会造成不便,例如,当我们需要存储数量不定的数据时。

切片是一种动态数据结构,它可以根据需要自动调整其长度。这使得切片非常适合存储数量不定的数据。切片在 Go 语言中也是一种非常重要的数据结构,它被广泛地应用于各种场景。

什么是切片

切片是一种引用类型的数据结构,它包含了一个指向数组元素的指针和一个长度。切片的长度表示切片中包含的元素数量。

var slice []int

切片的创建

切片可以通过两种方式创建:

  • 使用内置函数make()创建一个新的切片:
slice := make([]int, 10)
  • 从现有的数组或切片中创建一个新的切片:
arr := [10]int{1, 2, 3, 4, 5, 6, 7, 8, 9, 10}
slice := arr[0:5]

切片的索引

切片的索引与数组的索引相同,都是从 0 开始的。我们可以使用切片的索引来访问切片中的元素。

slice[0] = 100

切片的长度

切片的长度可以使用len()函数来获取。

fmt.Println(len(slice))

切片的遍历

我们可以使用for循环来遍历切片中的元素。

for i := 0; i < len(slice); i++ {
  fmt.Println(slice[i])
}

切片的追加

我们可以使用append()函数向切片中追加元素。

slice = append(slice, 11)

切片的删除

我们可以使用delete()函数从切片中删除元素。

slice = append(slice[:i], slice[i+1:])

切片的排序

我们可以使用sort.Slice()函数对切片进行排序。

sort.Slice(slice, func(i, j int) bool {
  return slice[i] < slice[j]
})

总结

切片是 Go 语言中一种非常强大的数据结构,它可以帮助我们轻松地处理数据。切片的使用非常灵活,我们可以根据需要动态地调整其长度。

在本文中,我们介绍了切片的基础知识,以及如何使用切片来解决各种问题。希望本文能够帮助大家更好地理解和使用 Go 语言切片。

在下一篇文章中,我们将继续介绍切片的更多高级用法。