Go語言————7.4 切片重組(reslice)
7.4 切片重組(reslice)
我們已經知道切片建立的時候通常比相關陣列小,例如:
slice1 := make([]type, start_length, capacity)
其中 start_length
作為切片初始長度而 capacity
作為相關陣列的長度。
這麼做的好處是我們的切片在達到容量上限後可以擴容。改變切片長度的過程稱之為切片重組 reslicing,做法如下:slice1 = slice1[0:end]
,其中 end 是新的末尾索引(即長度)。
將切片擴充套件 1 位可以這麼做:
sl = sl[0:len(sl)+1]
切片可以反覆擴充套件直到佔據整個相關陣列。
示例 7.11 reslicing.go
package main
import "fmt"
func main() {
slice1 := make([]int, 0, 10)
// load the slice, cap(slice1) is 10:
for i := 0; i < cap(slice1); i++ {
slice1 = slice1[0:i+1]
slice1[i] = i
fmt.Printf("The length of slice is %d\n", len(slice1))
}
// print the slice:
for i := 0; i < len(slice1); i++ {
fmt.Printf("Slice at %d is %d\n", i, slice1[i])
}
}
輸出結果:
The length of slice is 1
The length of slice is 2
The length of slice is 3
The length of slice is 4
The length of slice is 5
The length of slice is 6
The length of slice is 7
The length of slice is 8
The length of slice is 9
The length of slice is 10
Slice at 0 is 0
Slice at 1 is 1
Slice at 2 is 2
Slice at 3 is 3
Slice at 4 is 4
Slice at 5 is 5
Slice at 6 is 6
Slice at 7 is 7
Slice at 8 is 8
Slice at 9 is 9
另一個例子:
var ar = [10]int{0,1,2,3,4,5,6,7,8,9}
var a = ar[5:7] // reference to subarray {5,6} - len(a) is 2 and cap(a) is 5
將 a 重新分片:
a = a[0:4] // ref of subarray {5,6,7,8} - len(a) is now 4 but cap(a) is still 5
問題 7.7
如果 a 是一個切片,那麼
s[n:n]
的長度是多少?s[n:n+1]
的長度又是多少?
相關文章
- go 語言切片Go
- Go語言————7.2 切片Go
- GO語言學習——切片二Go
- Go 語言切片是如何擴容的?Go
- GO語言————8.4 map 型別的切片Go型別
- go語言學習-陣列-切片-mapGo陣列
- Go 語言基礎 陣列、切片、對映Go陣列
- Go語言系列(三)之陣列和切片Go陣列
- GO語言————7.5 切片的複製與追加Go
- go語言使用切片實現線性表Go
- Go語言切片面試真題7連問Go面試
- 《快學 Go 語言》第 5 課 —— 神奇的切片Go
- 帶讀 |《Go in Action》(中文:Go語言實戰) 深入瞭解切片Go
- Go 語言學習筆記之陣列與切片Go筆記陣列
- 《快學 Go 語言》第 5 課 —— 靈活的切片Go
- GO語言————7.6 字串、陣列和切片的應用Go字串陣列
- Go 語言的組合之道Go
- Go 語言中的 切片 --sliceGo
- go 語言模組匯入importGoImport
- go語言之陣列與切片Go陣列
- Go語言————1、初識GO語言Go
- Go語言實現位元組記錄鎖Go
- Go語言切片一網打盡,別和Java語法傻傻分不清楚GoJava
- GO語言————2、GO語言環境安裝Go
- Go 如何對陣列切片進行去重Go陣列
- Go語言之切片(slice)快速入門篇Go
- 聊聊Go語言中的陣列與切片Go陣列
- go語言將表資料動態轉成切片(欄位任意擴充)Go
- 【Go語言入門系列】(八)Go語言是不是面嚮物件語言?Go物件
- Go_go語言初探Go
- go 語言常量Go
- go語言使用Go
- Go語言mapGo
- Go語言中切片slice的宣告與使用Go
- go_切片Go
- The Way To Go --- 切片Go
- 組合語言1 - 什麼是組合語言?組合語言
- 什麼是Go語言?Go語言有什麼特點?Go