吾八哥学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
至于多维数组的元素访问跟一位数组是类似的。
后面我们继续学习数组的切片。