七叶笔记 » golang编程 » 吾八哥学Golang(八):Golang里的数组

吾八哥学Golang(八):Golang里的数组

数组是编程中非常常用的一种数据结构,Go语言里自然也是支持数组的,本文来初步了解下Go语言里的数组用法!

数组声明

Go语言数组声明需要指定元素类型及元素个数,语法格式如下:

Go

 var  变量名 [长度]...[长度] 变量类型 

长度要大于0的,下面列出一些数组声明的例子:

Go

package mainimport "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))} 

运行上面的代码,输出结果为:

Go

[ ][[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开始的,元素访问方法请看如下例子:

Go

package mainimport "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)
 }} 

上面代码运行结果为:

Go

351213103105112113 

数组的比较

对于相同长度的数组是可以直接进行比较的,长度不同的话编译会报错!如下例子:

Go

package mainimport "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)} 

以上代码输出结果为:

Go

true false 

至于多维数组的元素访问跟一位数组是类似的。

后面我们继续学习数组的切片。

相关文章