烟台网站建设托管,做网站的外包公司上班好不好,手机网站制作教程视频,推广员网站目录 数组数组的声明数组循环 切片切片声明切片元素循环 映射Map的声明及初始化Map的遍历 数组
数组存放的是固定长度、相同类型的数据#xff0c;而且这些存放的元素是连续的。
数组的声明
例如声明一个整形数组#xff1a;
array : [3]int{1, 2, 3}在类型名前加 [] 中括… 目录 数组数组的声明数组循环 切片切片声明切片元素循环 映射Map的声明及初始化Map的遍历 数组
数组存放的是固定长度、相同类型的数据而且这些存放的元素是连续的。
数组的声明
例如声明一个整形数组
array : [3]int{1, 2, 3}在类型名前加 [] 中括号并设置好长度大括号中的元素用于初始化数组需要注意的是数组的长度不同即属于不同的类型。
如果所有元素都被初始化的数组声明时可以省略数组长度例如上述的数组可以不写长度
array : []int{1, 2, 3}数组循环
使用传统for进行数组遍历
for i : 0; i 3; i {fmt.Println(array[i])}还有就是使用go中提供的for range循环代码如下
for i, v : range array {fmt.Println(i, v)}range表达式返回的结果分别为索引与数值如果返回值用不到可使用下划线丢弃掉。
切片
切片是基于数组实现的它的底层就是一个数组。对数组任意分隔就可以得到一个切片。切片是一个具备三个字段的数据结构分别是指向数组的指针 data长度 len 和容量 cap。
切片声明
使用 make 函数进行切片声明声明一个元素类型为 int 的切片长度是 4make 函数还可以传入一个容量参数 slice : make([]int, 3)fmt.Println(slice)我们进行打印默认是0。 传入容量
slice : make([]int, 3, 5)当然切片的容量不能比切片的长度小。 容量就是申请的内存空间而长度是已经使用的内存空间我们可以通过 append 函数往切片中追加元素来使用空闲内存。
slice append(slice, 1, 2)fmt.Println(slice)通过结果可知直接追加到空闲内存上了。
切片元素循环
切片的循环和数组一模一样常用的也是 for range 方式。
for i,v : range slice {fmt.Println(i, v)}输出的分别是切片的索引与数值。
映射
在 Go 语言中map 是一个无序的 K-V 键值对集合结构为 map[K]V。其中 K 对应 KeyV 对应 Value。map 中所有的 Key 必须具有相同的类型Value 也同样但 Key 和 Value 的类型可以不同。
Map的声明及初始化
可通过内置的 make 函数进行map的创建并进行赋值代码如下 map6 : make(map[string]int)map6[a] 1 也可使用字面量的方式进行map的创建并进行赋值操作代码如下 map7 : map[string]int{}map7[b] 2map 的 [] 操作符可以返回两个值第一个是value第二个是key如果存在则返回true。示例如下 map7 : map[string]int{}map7[b] 2v, k : map7[b]fmt.Println(v, k)Map的遍历
在 Go 语言中map 的遍历使用 for range 循环。 对于 mapfor range 同样返回两个值一个是key一个是value。示例如下
map6 : make(map[string]int)map6[a] 1map6[b] 2map6[c] 3for k, v : range map6 {fmt.Println(k, v)}通过两张结果图可以看出map 的遍历是无序的也就是说你每次遍历键值对的顺序可能会不一样。
map的大小可以使用内置的 len 函数进行获取。
println(len(map6))总结 1.数组是具有固定长度和相同类型的数据集合。声明数组时需要指定数组的长度和元素类型也可以省略长度以创建一个长度可变的数组。 2.切片是对数组的一个引用它包含指向数组的指针、长度和容量信息。可以使用make函数创建切片并使用append函数向切片追加元素。 3.映射是一个无序的键值对集合键和值可以是不同的类型。可以使用内置的make函数或字面量方式创建映射并使用for range循环遍历映射。 4.在Go语言中可以使用传统的for循环或for range循环遍历数组和切片。for range循环返回键值对可以用于遍历映射。 5.可以通过len函数获取映射的大小。 想了解更多go知识可以通过官网文档来进行学习。