本文介绍: 最后我们显示声明但是不赋值方式声明变量array3,该数组的长度我们手动指定的10,而该数组里的元素则为10个整数0,也就是声明变量但是不赋值的情况下,Go自动我们整数数据类型分配零值针对数组array1我们通过[5]手动指明了它的长度(注意:这里array1里的元素个数刚好为0,1,2,3,4总共5个整数,和array1的长度匹配,因为数组长度(或大小)指的是该数组能容纳的最大元素个数,并不是当前数组里有多少元素。如果将数组作为参数传入一个函数,Go会为该数创建一个副本

数组重要概念

数组(Array)是一种非常常见数据类型,几乎所有的计算机编程语言中都会用到

在Go语言中,数组如下的特点:

声明数组

该数组里的每个元素赋值(索引值的最小有效值和其他大多数语言一样是 0,不是1)

// [3] 里的3 表示该数组的元素个数及容量
var arr [3]int
arr[0] = 1
arr[1] = 2
arr[2] = 3

声明并直接初始化数组

 

// 第一种方法
var arr [3]int = [3]int{1,2,3}

// 第二种方法
arr := [3]int{1,2,3}

如果你不确定数组里具体有多少个元素时,可以使用[…]替代具体的长度比如[1], [2], [3]等等),Go的编译器自动帮你算出该数组的长度。举例如下:

array2 := [...]int{5, 6, 7}
fmt.Println("数组array2的长度:", len(array2))

再看一个例子

func main() {
	var array1 = [5]int{0, 1, 2, 3, 4}
	array2 := [...]int{5, 6, 7}
	var array3 [10]int
	fmt.Println("数组array1的长度:", len(array1))
	fmt.Println("数组array2的长度:", len(array2))
	fmt.Println("数组array3的长度:", len(array3))
}

输出

这里我们分别用标准格式(隐式声明)简短格式以及标准格式(显示声明)创建了三个整数数组变量array1,array2和array3。

针对数组array1我们通过[5]手动指明了它的长度(注意:这里array1里的元素个数刚好为0,1,2,3,4总共5个整数,和array1的长度匹配其实这里我们不用一定要在数组里放满5个元素不可,只要元素个数不超过我们定义的长度就可以,因为数组的长度(或大小)指的是该数组能容纳的最大元素个数,并不是当前数组里有多少个元素。)

针对array2,我们使用[…]让Go帮我们自动计算出了该数组的长度,结果为3。

最后我们用显示声明但是不赋值的方式声明了变量array3,该数组的长度为我们手动指定的10,而该数组里的元素则为10个整数0,也就是在声明变量但是不赋值的情况下,Go自动为我们给整数数据类型分配零值

数组一旦被创建过后,其长度就再也不能被更改(不管是改大还是改小),举例如下:

func main() {
	var array1 = [5]int{0, 1, 2, 3, 4}
	array2 := [...]int{5, 6, 7}
	var array3 [10]int
	fmt.Println("数组array1的长度:", len(array1))
	fmt.Println("数组array2的长度:", len(array2))
	fmt.Println("数组array3的长度:", len(array3))
	array2 = [4]int{5, 6, 7}
}

输出

如果将数组作为参数传入一个函数,Go会为该数组创建一个副本实际传入函数中的是数组的副本而不是源本,因此在函数下面对该数组进行的任何操作都会在函数返回丢失

原文地址:https://blog.csdn.net/csdn876280441/article/details/134707452

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任

如若转载,请注明出处:http://www.7code.cn/show_39780.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱suwngjj01@126.com进行投诉反馈,一经查实,立即删除

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注