Golang slice make() 函数创建了空片。空片是那些包含空数组引用的片子。
Golang make
Golang make() 是一个内置的切片函数,用于创建一个切片。make()函数接受三个参数:类型、长度和容量,并返回切片。 要创建动态大小的数组,请使用make()函数。
make()函数分配了一个归零的数组,并返回一个指向该数组的片断 。该函数分配给底层数组的大小等于给定的容量,并返回指向底层数组的片断。
语法
func make([]T, len, cap) []T
Golang slice是一种灵活的、可扩展的数据结构,用于实现和管理数据集合。切片是由多个项目组成的,都是同一类型的。
slice是动态数组的一个片段,可以根据你的需要增长和缩小。
Golang slice make()的实现
现在,让我们来创建一个空的slice。
// hello.go
package main
import "fmt"
func main() {
// Creating an array of size 6
// and slice this array till 3
// and return the reference of the slice
// Using make() function
var sliceA = make([]int, 3, 6)
fmt.Printf("SliceA = %v, \nlength = %d, \ncapacity = %d\n",
sliceA, len(sliceA), cap(sliceA))
// Creating another array of size 6
// and return the reference of the slice
// Using make() function
var sliceB = make([]int, 6)
fmt.Printf("SliceB = %v, \nlength = %d, \ncapacity = %d\n",
sliceB, len(sliceB), cap(sliceB))
}
输出
SliceA = [0 0 0],
length = 3,
capacity = 6
SliceB = [0 0 0 0 0 0],
length = 6,
capacity = 6
当你使用make()函数时,你有一个选项是指定分片的长度。当你指定长度时,切片的容量是一样的。在我们的例子中,我们已经定义了片断的长度和容量。
在第一个例子中,切片的长度是3,而容量是6;在第二个例子中,长度是6,而容量是6。
Golang slice的字面意思
你可以用一个slice literal来创建一个slice。创建slice literal就像创建数组 literal一样,但有一点不同,你不允许在方括号[]中指定slice的大小。
var sliceA = []string{"Gandia", "Arturo", "Alicia"}
有一点需要记住的是,当你使用字符串字面意义创建分片时,那么它首先创建数组,之后再返回分片的引用。
总结
我们可以使用Golang make()函数和slice literal来创建一个slice。
本教程到此结束。