数组

数组是一种基本的数据结构,在日常编程中经常会用到。在Go语言中,数组是定长的,元素类型必须相同。数组的声明方式如下:

var arr [5]int // 声明一个长度为5,元素类型为int的数组

访问数组中的元素可以使用下标,下标从0开始,例如:

arr[0] = 1 // 将数组的第一个元素赋值为1

数组的长度可以通过len函数获取,例如:

length := len(arr) // 获取数组的长度,结果为5

Go语言切片

切片是对数组的抽象,可以看作是动态数组。切片的长度可以动态改变,元素类型和数组一样必须相同。切片的声明方式如下:

var slice []int // 声明一个切片

切片的下标从0开始,使用append函数可以将元素添加至切片末尾,例如:

slice = append(slice, 1) // 将1添加到切片末尾

切片的长度和容量可以通过len和cap函数分别获取,例如:

length := len(slice) // 获取切片的长度
capacity := cap(slice) // 获取切片的容量

Go语言数组和切片的区别

数组和切片都是Go语言中常见的数据结构,但是它们之间有一些区别:

  • 数组长度是固定的,而切片长度可以动态改变。
  • 数组是值类型,传递时会进行复制,而切片是引用类型,传递时会共享底层数据。
  • 数组可以直接比较,而切片只能和nil比较。

综上所述,数组和切片都是Go语言中常用的数据结构,开发者应该根据实际需求选择合适的数据结构。