Golang基础知识与常见问题

数据结构

Slice

slice结构

GO切片是在数组之上的抽象数据结构类型,数组类型定义了长度和元素类型。

例如,[4]int类型标识一个四个整数的数组数组的长度是固定的,长度是数组类型的一部分。数组以常规的索引方式访问,不需要显示初始化。数组的零值为0

切片的写法是[]T,T是切片元素的类型。与数组不同,切片没有给固定长度。而切片slice的长度与容量不固定,指针指向底层数组

切片可以使用内置函数make创建。函数make接受一个类型,一个长度,一个可选的容量参数。调用make时,内部会分配一个数组,然后返回数组对应的切片,大概容量被忽略时,它默认为指定的长度。切片的零值为nil。对于切片的零值,len和cap都将返回0。下图为切片的数据结构

Golang基础知识与常见问题_第1张图片
Golang基础知识与常见问题_第2张图片

slice扩容

在Go语言中使用append()函数向Slice添加元素,扩容也是发生在append的调用中,当切片内部的容量,不足以容纳新增元素时就会触发Slice的扩容。

1.18前的slice扩容操作

  1. 计算新容量,将

你可能感兴趣的:(面试整理,golang,面试,go,gin,后端)