介绍Go语言的数组使用方法
(一)数组简介
数组是最简单的数据结构之一,是具有相同唯一类型的一组已编号且长度固定的数据项序列 (类型的话可以是整形、字符串、自定义数据类类型)数组存储数据使得数据更方便的存储查询
(二)go语言数组声明
①先声明后初始化直接初始化
声明数组的类型、大小 var myint [5]int 对数组进行赋值 for i := 0; i < 5; i++ { myint[i] = i }
②直接初始化
一维数组: var 数组名 [数组大小] 数组元素的数据类型{} //{}代表将数组声明的同时将他初始化一下 例如: var myarray1 = [10]int{1, 2, 3, 4, 5, 6, 7, 8, 9, 0} 多维数组: 二维数组是最简单的多维数组 声明方式如下: var 数组名 [][][]...[][]数组类型 二维数组声明 var 数组名 [x][y] 数据类型 可以认为x是行y是列 例如: var mytwostr = [2][3]int{{1, 2, 3}, {2, 3, 4}}
(三)对数组内的元素进行操作
(0)遍历数组
①使用range关键字
var myarray1 = [10]int{1, 2, 3, 4, 5, 6, 7, 8, 9, 0} //这里 _ 空白字符前面已经介绍过,这里是为了吸收数组的索引,temp内存的是数值 for _, temp := range myarray1 { fmt.Println(temp) }
②一般的遍历方式
var a = [3]string{"我叫小谬", "缪", "哥"} for i := 0; i < len(a); i++ { fmt.Println(a[i]) }
(1)增(增删改查比较简单就不全上代码了)
对数组进行添加数据,一般将数组添加到末尾,采用直接赋值的方式
(2)删
删除数组内的东西一般是将被删除元素后面的元素依次向前赋值将原来的数据覆盖掉
删除掉数组内数值为3的数据 myarray := [7]int{1, 6, 3, 7, 4, 2, 5} for k, v := range myarray { if v == 3 { for i := k; i < len(myarray)-1; i++ { //使用后面的数据对其进行覆盖 myarray[i] = myarray[i+1] } //将末尾数据赋为初始值 myarray[len(myarray)-1] = 0 } }
(3)改
修改数据的话,找到要修改的数据,直接拿新的数据对其进行覆盖
将数组内的3修改为10 myarray := [7]int{1, 6, 3, 7, 4, 2, 5} for k, v := range myarray { if v == 3 { myarray[k]=10 } }
(4)查
采用下标直接将需要的数据拿出来
(四)数组作为参数
一定要区分Go语言中的数组与切片,切片最明显的特征是不用指定大小,可以自动进行扩容(后面会详细介绍)
一、直接将数组转换为切片参数传进去 二、设置一个等长的数组作为参数(长度不匹配编译报错)
//两种传参方式 package main import "fmt" //这个参数实际上是一个切片 func p(a []int) { fmt.Println(a) } //这个参数是一个数组 func p1(a [7]int) { fmt.Println(a) } func main() { //声明一个一维数组并进行初始化 myarray := [7]int{1, 6, 3, 7, 4, 2, 5} //通过传参打印数组内的东西 //这种切片传参的方式,传进的参数也必须是切片 p(myarray[:]) //这种传参方式直接将数组名传进去 p1(myarray) }