go第二天

切片 slice

因为数组的长度是固定的并且数组长度属于类型的一部分,所以数组有很多的局限性,例如

切片

是一个拥有相同类型元素的可变长度的序列,它是基于数组类型做的一层封装吗,他非常灵活,支持自动扩容

切片是一个引用类型,他的内部结构包括地址 长度 容量,切片一般用于快速地操作一块数据集合

切片的本质

切片的本质就是对底层数组的封装,它包含了三个信息,底层数组的指针,切片的长度和切片的容量

Go语言的内建函数append() 可以为切片动态添加元素,可以一次添加一个元素,可以添加多个元素

也可以添加另一个切片中的元素

Go 语言中提供的映射关系容器为map,其内部使用散列表hash实现。

map是一种无序的基于key-value 的数据结构,Go语言中的map是引用类型,必须初始化才能使用。

函数是组织好的,可重复使用的,用于执行指定任务的代码块,本文介绍了Go语言中函数的相关内容。

函数

Go语言中支持函数,匿名函数和闭包,并且函数在Go语言中属于 一等公民

Go语言中定义函数使用func关键字,具体格式如下

func 函数名(参数)(返回值){

  函数体

}

其中:

函数名:由字母,数字 下划线组成,但函数名的第一个字母不是数字,在同一个包内,函数不能重名

参数:参数由参数变量和参数变量的类型组成,多个参数之间使用,分隔

返回值 返回值由返回值变量和其类型组成,也可以只写返回值的类型

多个返回值必须用()包裹,并用,分隔

Go 语言中的defer语句会将其后面跟随的语句进行延迟处理。在defer归属的函数即将返回时,将延迟处理的语句按

defer定义的逆序进行执行,也就是说,先被defer的语句最后被执行,最后被defer的语句,最先被执行

原文地址:https://www.cnblogs.com/simadongyang/p/14287782.html