Golang make: 如何在Go中创建Slice

895 阅读2分钟

Golang Slice make() Function | How To Create Slice in Go

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。

本教程到此结束。