Go中使用make初始化切片、映射、通道的方法

59 阅读1分钟

在 Go 语言中,make主要用于初始化切片(slice)、映射(map)和通道(channel)三种类型的数据结构。以下是具体用法:

一、初始化切片(slice)

语法:make([]T, len, cap)

  • T是切片中元素的类型。

  • len指定切片的长度,表示当前切片中有多少个元素。

  • cap指定切片的容量,表示切片在不重新分配内存的情况下可以容纳多少个元素。如果未指定容量,容量将等于长度。

示例:

s := make([]int, 5)
// s 的长度为 5,此时元素初始值为 0
s1 := make([]int, 3, 10)
// s1 的长度为 3,容量为 10,元素初始值为 0

二、初始化映射(map)

语法:make(map[K]V)

  • K是键的类型。

  • V是值的类型。

示例:

m := make(map[string]int)
// 创建一个空的字符串为键、整数为值的映射

三、初始化通道(channel)

语法:make(chan T, bufferSize)

  • T是通道中元素的类型。

  • bufferSize指定通道的缓冲区大小。如果为 0 或未指定,则创建一个无缓冲的通道,发送和接收操作必须同时进行(同步通信);如果指定了缓冲区大小,则可以在缓冲区未满时进行发送操作,在缓冲区不为空时进行接收操作(异步通信)。

示例:

c := make(chan int)
// 创建一个无缓冲的整数通道
c1 := make(chan int, 5)
// 创建一个缓冲区大小为 5 的整数通道

总之,make函数在 Go 语言中是一种非常方便的初始化特定数据结构的方式。

(以上内容来自“豆包”大模型)