Golang数组

数组在任何编程语言中,都是非常常用的数据结构之一。

Golang中数组的特点有两个:1)在内存中的一段连续存储空间;2)存储类型相同的一组数据。

声明格式:

var 数组名称 [数组大小]类型

package main

import "fmt"

/**
	www.itzhimei.com
 */
func main() {
	var arr1 [10]int
	//每个元素单独赋值
	arr1[0] = 1
	arr1[1] = 2
	arr1[2] = 3
	fmt.Println("arr1:",arr1)

	//定义变量同时赋值
	arr2 := [10]int{4,5,6}
	fmt.Println("arr2:",arr2)
}

输出:

arr1: [1 2 3 0 0 0 0 0 0 0]
arr2: [4 5 6 0 0 0 0 0 0 0]

如上面demo所示,我们可以先定义数组变量再单个赋值,也可以定义的同时赋值。

注意点:数组在定义时,中括号中指定数组大小是不能省略的,如果你要赋值一个比较长数组,可以用三个点来代替数组大小的数字,go会自己计算数据长度,如下:

arr3 := [...]int{7,8,9}
fmt.Println("arr3:",arr3)

//输出结果
arr3: [7 8 9]

数组的特点:

1、数组在定义时,长度就固定了,不能再修改长度;

2、数组比较是否相等的时候,数组的长度也是一个比较条件,数组长度不相等,那么两个数据肯定不相等。

数组的操作:

1、操作单个元素,直接使用数组名+下标即可,还可以用for循环遍历,for我们再后续章节会讲到

var arr1 [10]int
arr1[0] = 1
for _,i :=range arr3 {
	fmt.Println("arr3的元素打印:",i)
}

输出结果:

arr3的元素打印: 7
arr3的元素打印: 8
arr3的元素打印: 9

2、数据的另一个操作就是获取数组的长度,go内置了一个len()的方法

fmt.Println("arr1数组长度为:",len(arr1))
fmt.Println("arr2数组长度为:",len(arr2))
fmt.Println("arr3数组长度为:",len(arr3))

输出结果:

arr1数组长度为: 10
arr2数组长度为: 10
arr3数组长度为: 3

我把完整demo的代码放在这里,你可以copy执行看看效果。

package main

import "fmt"

/**
	www.itzhimei.com
 */
func main() {
	var arr1 [10]int
	//每个元素单独赋值
	arr1[0] = 1
	arr1[1] = 2
	arr1[2] = 3
	fmt.Println("arr1:",arr1)

	//定义变量同时赋值
	arr2 := [10]int{4,5,6}
	fmt.Println("arr2:",arr2)

	arr3 := [...]int{7,8,9}
	fmt.Println("arr3:",arr3)

	for _,i :=range arr3 {
		fmt.Println("arr3的元素打印:",i)
	}

	fmt.Println("arr1数组长度为:",len(arr1))
	fmt.Println("arr2数组长度为:",len(arr2))
	fmt.Println("arr3数组长度为:",len(arr3))
}