首頁 >後端開發 >Golang >golang切片需要make嗎

golang切片需要make嗎

尚
原創
2020-01-14 15:36:365138瀏覽

golang切片需要make嗎

切片(slice)是 Golang 中一種比較特殊的資料結構,這種資料結構更便於使用和管理資料集合。切片是圍繞動態數組的概念構建的,可以按需自動增長和縮小。

透過make() 函數建立切片

使用Golang 內建的make() 函數建立切片,此時需要傳入一個參數來指定切片的長度:

// 创建一个整型切片
// 其长度和容量都是 5 个元素
slice := make([]int, 5)

此時只指定了切片的長度,那麼切片的容量和長度就相等。也可以分別指定長度和容量:

// 创建一个整型切片
// 其长度为 3 个元素,容量为 5 个元素
slice := make([]int, 3, 5)

分別指定長度和容量時,建立的切片,底層陣列的長度是指定的容量,但是初始化後並不能存取所有的陣列元素。

注意,Golang 不允許建立容量小於長度的切片,當建立的切片容量小於長度時會在編譯時刻報錯:

// 创建一个整型切片
// 使其长度大于容量
myNum := make([]int, 5, 3)

透過字面量建立切片

另一種常用的建立切片的方法是使用切片字面量,這種方法和建立陣列類似,只是不需要指定[]運算子裡的值。初始的長度和容量會基於初始化時提供的元素的個數確定:

// 创建字符串切片
// 其长度和容量都是 3 个元素
myStr := []string{"Jack", "Mark", "Nick"}
// 创建一个整型切片
// 其长度和容量都是 4 个元素
myNum := []int{10, 20, 30, 40}

當使用切片字面量建立切片時,也可以設定初始長度和容量。要做的就是在初始化時給出所需的長度和容量作為索引。下面的語法展示如何使用索引方式建立長度和容量都是100個元素的切片:

// 创建字符串切片
// 使用空字符串初始化第 100 个元素
myStr := []string{99: ""}

更多golang知識請關注golang教學欄位。

以上是golang切片需要make嗎的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn