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

golang切片需要make嗎

發布: 2020-01-14 15:36:36
原創
5130 人瀏覽過

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中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板