内容简介:数组,切片,map是容器数据类型。都是可以存储多个值的符合类型。 其中数组是相同类型的一组已编号且长度固定的数据项序列,不用类型和长度是不同的数据类型,例如[5]int, [3]int, [5]byte是不同的类型。索引(index),是从 0 开始,加 1 递增的。使用 [] 访问。
1 概述
数组,切片,map是容器数据类型。都是可以存储多个值的符合类型。 其中数组是相同类型的一组已编号且长度固定的数据项序列,不用类型和长度是不同的数据类型,例如[5]int, [3]int, [5]byte是不同的类型。
2 定义语法
// 定义长度和类型,默认使用类型零值进行初始化 var a1 [10]int // 定义长度和类型,同时初始化部分(全部)元素 // 元素不够从前到后进行初始化 var a2 = [10]int{1, 2, 3, 4, 5} // 不指定长度,指定类型。使用初始值确定长度 // 有几个初始值,长度就是几 var a3 = [...]int{1, 2, 3, 4, 5, 6} // 通过索引确定元素值 var a4 = [10]int{0: 1, 3: 2, 5: 3, 4, 5}
3 []索引访问
索引(index),是从 0 开始,加 1 递增的。使用 [] 访问。
arr[0] // 数组的第一个元素 arr[len(arr)-1] // 数组的最后一个元素
4 数组是值类型
数组为值类型,赋值时会生成新拷贝。这个可能和你熟悉的语言不同,稍稍留意。
5 len() 长度
统计元素个数,一维的统计。如果是多维,仅统计一维元素数量。
6 数组遍历
使用 循环索引 或者 for range 的语法完成遍历。
// 循环索引 var arr = [...]string{"a", "b", "c", "d", "e", "f"} for i, l := 0, len(arr); i < l; i++ { fmt.Println(arr[i]) } // for range var arr = [...]string{"a", "b", "c", "d", "e", "f", "g", "h"} for i, v := range arr { fmt.Println(i, v) }
7 多维数组
数组元素的值可以是数组类型,称之为多维数组,要求内部数组的长度相同。以二维数组为例,使用[][]来定义,可以将二维数组想象成一个行列表格。
var a1 [3][5]int var a2 = [3][5]string{{"a", "b", "c", "d", "e"}, {"f", "g", "h", "i", "j"}, {"k", "l", "m", "n", "o"}}
以上代码就定了二维数组,第一个使用默认值初始,第二个手动填充。
演示如下
使用双层循环可以遍历二维数组:
// 循环索引 // 行坐标索引 for i := 0; i < 3; i++ { // 列坐标索引 for j := 0; j < 5; j++ { fmt.Print(a2[i][j], " ") } fmt.Println() } // for range for _, row := range a2 { // fmt.Println(i, row) for _, value := range row { fmt.Print(value, " ") } fmt.Println() }
8 数组传参
数组是值类型,传参时会发生值拷贝,当使用大数组时,内存的消耗需要考虑。可以考虑使用数组指针或者切片类型。
func FuncName(p *[9999]float64) { }
9 ==,!= 数组间的比较
两个数组的类型,长度,元素值,顺序都相同,认为两个数组相等。
[3]{1, 2, 3} == [4]{1, 2, 3, 4} // false [3]{1, 2, 3} == [3]{3, 2, 1} // false [3]{1, 2, 3} == [3]{1, 2, 3} // true
完! 原文出自: 小韩说课
微信关注:小韩说课
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
PHP and MySQL Web Development
Luke Welling、Laura Thomson / Sams / July 25, 2007 / $49.99
Book Description PHP and MySQL Web Development teaches you to develop dynamic, secure, commerical Web sites. Using the same accessible, popular teaching style of the three previous editions, this b......一起来看看 《PHP and MySQL Web Development》 这本书的介绍吧!