数组和切片是 Go 语言中常用的数据结构,它们都可以存储多个同类型的元素。
数组
数组是具有固定长度的数据类型,它的长度在定义时就已经确定,不能随意改变。
你可以使用以下方式定义一个数组:
var arr [3]int
这段代码定义了一个长度为 3 的 int
类型数组 arr
。你也可以在定义时初始化数组:
arr := [3]int{1, 2, 3}
你可以通过下标访问和修改数组的元素:
arr[0] = 10 // 修改数组的第一个元素
fmt.Println(arr[1]) // 输出数组的第二个元素
切片
切片是一个引用类型,它其实是对底层数组的封装。切片的长度是可以变的,所以它比数组更加灵活。
你可以使用以下方式定义一个切片:
var s []int
这段代码定义了一个 int
类型的切片 s
。你也可以在定义时初始化切片:
s := []int{1, 2, 3}
你可以通过 make
函数创建一个切片:
s := make([]int, 3) // 创建一个长度为 3 的切片
你可以通过下标访问和修改切片的元素,和数组类似:
s[0] = 10 // 修改切片的第一个元素
fmt.Println(s[1]) // 输出切片的第二个元素
切片有一些额外的操作,比如 append
和 copy
:
s = append(s, 4, 5, 6) // 在切片末尾添加元素
t := make([]int, len(s))
copy(t, s) // 复制切片
切片可以进行切片操作,得到一个子切片:
sub := s[1:3] // 获取切片的一个子切片
以上就是 Go 语言中数组和切片的基本使用。理解和掌握数组和切片是编写 Go 语言程序的基本技能。
推荐阅读:
https://mp.weixin.qq.com/s/dV2JzXfgjDdCmWRmE0glDA
https://mp.weixin.qq.com/s/an83QZOWXHqll3SGPYTL5g