go语言数组、切片、映射

go的一些语法有点晦涩,这些很基础,做一下笔记

数组

数组声明

#声明一个包含5个元素的整型数组
var array [5]int 
#声明一个包含5个元素的字符串数组
var array1 [5]string
#声明一个整型数组,不限制
var array [...]int

数组声明初始化

#声明一个包含5个元素的整型数组
#用具体值初始化每个元素
array := [5]int{10,20,30,40,50}
array := [...]int{10,20,30,40,50}

切片

切片的声明

#创建一个字符串切片,长度和容量都是5个元素
slice := make([]string,5)
#创建一个整型切片,其长度为3个元素,容量为5个元素,不允许创建容量小于长度的切片
slice := make([]int,3,5)
#创建字符串切片
slice := []string{"red","blue"}
#创建nil整型切片
var slice []int
#使用make创建空的整型切片
slice := make([]int,0)
#使用切片字面量创建空的整型切片
slice := []int{}
如果在[]运算符里指定一个值,那么创建的就是数组而不是切片
#切片概念是只包含左边元素不包含右边元素
#可以把容量当做成总长度减去左指针走过的元素值
slice := []int{10, 20, 30, 40, 50}
slice[1:3] 长度为2:slice[1]和slice[2]

切片的追加

append操作完,newSlice拥有一个全新的底层数组,这个数组的容量是原来的两倍
slice := []int{10, 20, 30, 40}
newSlice := append(slice, 50)
cap(newSlice)  #8
len(newSlice)   #5
切片操作并不复制切片指向的元素。它创建一个新的切片并复用原来
切片的底层数组。 这使得切片操作和数组索引一样高效。因此,通过
一个新切片修改元素会影响到原始切片的对应元素。

切片是一维的,和数组一样,可以组合多个切片形成多维切片

slice := [][]int{{10}, {100, 200}}

切片函数传递是值传递

映射

映射是一个存储键值对无序集合

#创建一个映射,键类型是string,值得类型是int
dict := make(map[string]int)
#创建映射时,更常用的方法是使用映射字面量
dict := map[string]string{"Red": "#da1337", "Orange": "#e95a22"}
#删除一项
delete(map,key)
赋值
color := make(map[string]int)
color := map[string]int  错误
color["red"] = 3
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容