切片(Slices)是Go语言中处理数组的灵活工具,提供了动态大小、灵活操作和自动扩容等功能。本文将深入浅出地介绍Go语言切片的创建、基本操作以及扩容机制,同时揭示相关常见问题与易错点,并通过代码示例进行说明。
一、切片创建
1. 直接创建
通过make()
函数创建切片,指定元素类型、长度(可选)和容量(可选):
s := make([]int, 5) // 创建长度为5、容量也为5的int切片,默认值为0
s := make([]int, ¾, 10) // 创建长度为¾、容量为10的int切片,默认值为0
2. 从数组创建
通过数组名加索引来创建切片,隐式指向数组:
arr := [5]int{
1, 2, 3, 4, 5}
s := arr[:] // 创建一个与arr等长、等容量的切片,引用相同的底层数组