make

本篇讲解 Go 内建函数 make 的常见写法、参数含义和初学者常见错误。

字数 320 字

make(内建函数)

它是做什么的

make 用于初始化并返回 slicemapchannel
这三种类型都依赖运行时结构,通常需要先 make 才能直接使用。

基本写法

1
2
3
s := make([]int, 2, 4)   // 切片:长度 2,容量 4
m := make(map[string]int) // map:可直接写入键值
ch := make(chan int, 2)   // channel:缓冲区大小 2

参数含义

  1. 第一个参数是要创建的类型(仅支持 slicemapchannel)。
  2. 后续参数表示长度、容量或缓冲区大小,具体含义取决于类型。
  3. make 返回的是“可直接使用的值”,而不是指针。

结合切片的示例

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
package main

import "fmt"

func main() {
	b := make([]int, 2, 4)
	b[0], b[1] = 10, 20

	fmt.Println(b, len(b), cap(b))
}

初学者容易踩坑

  1. make 当成关键字;实际上它是内建函数。
  2. 尝试用 make 创建数组(如 make([3]int, 3))会编译失败。
  3. make([]int, n) 创建出的切片长度已经是 n,不是空切片。
使用 Hugo 构建
主题 StackJimmy 设计 由 Hobin 魔改
载入天数...载入时分秒...
发表了 0 篇文章 · 发表了 31 篇笔记 · 总计 1 万 6 千字(其中笔记 16551 字)