吾八哥博客

您现在的位置是:首页 > 码农手记 > Golang > 正文

Golang

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

吾八哥2018-01-25Golang3987

数组是编程中非常常用的一种数据结构,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

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

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