吾八哥学Golang(八):Golang里的数组
数组是编程中非常常用的一种数据结构,Go语言里自然也是支持数组的,本文来初步了解下Go语言里的数组用法!
数组声明
Go语言数组声明需要指定元素类型及元素个数,语法格式如下:
var 变量名 [长度]...[长度] 变量类型
长度要大于0的,下面列出一些数组声明的例子:
package main import "fmt" func main() { //声明长度为10的string型数组 var arr1 [10]string //声明9*9的二维整型数组 var arr2 [9][9]int //声明一个结构体类型的数组 var arr3 [8]struct{a, b int; c float32; d byte} //声明数组给定初始化值 var arr4 = [3]int{3,5,7} //自动根据元素个数来设定长度的数组 var arr5 = [...]int{3,5,7,9} fmt.Println(arr1) fmt.Println(arr2) fmt.Println(arr3) fmt.Println(arr4) fmt.Println(len(arr5)) }
运行上面的代码,输出结果为:
[ ] [[0 0 0 0 0 0 0 0 0] [0 0 0 0 0 0 0 0 0] [0 0 0 0 0 0 0 0 0] [0 0 0 0 0 0 0 0 0] [0 0 0 0 0 0 0 0 0] [0 0 0 0 0 0 0 0 0] [0 0 0 0 0 0 0 0 0] [0 0 0 0 0 0 0 0 0] [0 0 0 0 0 0 0 0 0]] [{0 0 0 0} {0 0 0 0} {0 0 0 0} {0 0 0 0} {0 0 0 0} {0 0 0 0} {0 0 0 0} {0 0 0 0}] [3 5 7] 4
从运行结果可以看出,声明的数组默认都会被初始化赋值零的,string类型默认就是空字符串,获取数组长度使用len()方法,需要注意的是在Go语言里数组的长度声明后是不可以修改的,初始化值的元素个数不能大于声明的长度。
数组元素访问
go语言里数组的下角标也是从0开始的,元素访问方法请看如下例子:
package main import "fmt" func main() { var arr = [...]int{3,5,12,13} //下角标来访问 for i := 0; i < len(arr); i++ { fmt.Println(arr[i]) //修改数组里的元素的值 arr[i] = arr[i] + 100 } //range的方式访问 for _, v := range arr { fmt.Println(v) } }
上面代码运行结果为:
3 5 12 13 103 105 112 113
数组的比较
对于相同长度的数组是可以直接进行比较的,长度不同的话编译会报错!如下例子:
package main import "fmt" func main() { var arr1 = [4]int{3,5,12,13} var arr2 = [...]int{3,5,12,13} var arr3 = [4]int{3,5,12,14} fmt.Println(arr1 == arr2, arr1 == arr3) }
以上代码输出结果为:
true false
至于多维数组的元素访问跟一位数组是类似的。
后面我们继续学习数组的切片。