使用 make 创建切片
Coddy Go 中的切片和映射 课程的第 12 课,共 21 课。
在前几节课中,我们使用切片字面量创建了切片。不过,还有一个名为 <strong>make</strong> 的函数。它可以为切片分配一个具有指定长度和容量的底层数组。之所以需要像 <strong>make</strong> 这样的函数,是因为切片的长度不是预先确定的。因此,<strong>make</strong> 函数可以让你创建指定长度的切片。
但别误会,切片的长度不会因此变成固定值。你仍然可以向其中追加元素。
<strong>make</strong> 函数的语法如下:
mySlice = make([]string, 4)你只需使用 <strong>make</strong>。第一个参数(<strong>[]string</strong>)描述切片的类型,第二个参数(<strong>4</strong>)告诉 <strong>make</strong> 这个切片需要多长。第二个参数也表示底层数组的容量。因此,返回的切片长度和容量相等。
那么,如果直接使用简单的切片字面量就可以创建切片,为什么还需要使用 <strong>make</strong> 函数呢?
答案是,在某些情况下,我们需要向切片添加新值。如果切片的容量不足,就会创建一个新的底层数组。由于需要重新分配内存,这个操作会消耗较多内存。<strong>make</strong> 函数可以通过预先分配内存空间来避免这种重新分配。
使用 <strong>make</strong> 时,我们可以像这样指定不同的长度和容量:
mySlice = make([]string, 4, 6)一般来说,<strong>make</strong> 函数可以表示如下:
挑战
简单使用 <strong>make</strong> 函数创建一个名为 <strong>coddy</strong> 的切片,长度 为 4,容量 为 5。
- 将值 "Learn Golang" 添加到索引 0。
- 将值 "Coddy.tech" 添加到索引 3。
- 使用
<strong>range</strong>关键字遍历这个切片,并将索引 和值 打印到屏幕上。
亲手试试
package main
import "fmt"
func main() {
// 用 make 创建 coddy 切片
// 在索引 0 和 3 处添加元素
// 遍历 coddy 切片
}Go 中的切片和映射中的所有课
自己练习: Go 在线编译器