|
@@ -1,18 +1,16 @@
|
|
|
# 7.4 切片重组
|
|
# 7.4 切片重组
|
|
|
|
|
|
|
|
-175
|
|
|
|
|
-
|
|
|
|
|
-我们已经知道slice创建的时候通常比相关数组小,例如
|
|
|
|
|
|
|
+我们已经知道 slice 创建的时候通常比相关数组小,例如
|
|
|
|
|
|
|
|
slice1 := make([]type, start_length, capacity)
|
|
slice1 := make([]type, start_length, capacity)
|
|
|
|
|
|
|
|
-其中start_length作为slice初始长度而capacity作为相关数组的长度。
|
|
|
|
|
|
|
+其中 start_length 作为 slice 初始长度而 capacity 作为相关数组的长度。
|
|
|
|
|
|
|
|
-这么做的好处是我们的slice在达到容量上限后可以扩容。改变slice长度的过程称之为分片重组`reslicing`,做法如下:slice1 = slice1[0:end],其中end是新的末尾索引(即长度)。
|
|
|
|
|
|
|
+这么做的好处是我们的 slice 在达到容量上限后可以扩容。改变 slice 长度的过程称之为切片重组 **reslicing**,做法如下:`slice1 = slice1[0:end]`,其中 end 是新的末尾索引(即长度)。
|
|
|
|
|
|
|
|
-将slice扩展1位可以这么做: sl = sl[0:len(sl)+1]
|
|
|
|
|
|
|
+将 slice 扩展 1 位可以这么做:`sl = sl[0:len(sl)+1]`
|
|
|
|
|
|
|
|
-slice可以反复扩展直到占据整个相关数组。
|
|
|
|
|
|
|
+slice 可以反复扩展直到占据整个相关数组。
|
|
|
|
|
|
|
|
|
|
|
|
|
示例 7.11 [reslicing.go](exmaples/chapter_7/reslicing.go)
|
|
示例 7.11 [reslicing.go](exmaples/chapter_7/reslicing.go)
|
|
@@ -36,6 +34,7 @@ slice可以反复扩展直到占据整个相关数组。
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
输出结果:
|
|
输出结果:
|
|
|
|
|
+
|
|
|
The length of slice is 1
|
|
The length of slice is 1
|
|
|
The length of slice is 2
|
|
The length of slice is 2
|
|
|
The length of slice is 3
|
|
The length of slice is 3
|
|
@@ -68,11 +67,12 @@ slice可以反复扩展直到占据整个相关数组。
|
|
|
|
|
|
|
|
问题 7.7:
|
|
问题 7.7:
|
|
|
|
|
|
|
|
-1) 如果a是一个slice,那么s[n:n]的长度是多少?
|
|
|
|
|
|
|
+1) 如果 a 是一个 slice,那么 s[n:n] 的长度是多少?
|
|
|
|
|
+
|
|
|
|
|
+2) s[n:n+1] 的长度又是多少?
|
|
|
|
|
|
|
|
-2) s[n:n+1]的长度又是多少?
|
|
|
|
|
|
|
+## 链接
|
|
|
|
|
|
|
|
-##链接
|
|
|
|
|
- [目录](directory.md)
|
|
- [目录](directory.md)
|
|
|
-- 上一节:[For range构建方法](07.3.md)
|
|
|
|
|
-- 下一节:[拷贝与追加slice](07.5.md)
|
|
|
|
|
|
|
+- 上一节:[For-range 结构](07.3.md)
|
|
|
|
|
+- 下一节:[切片的复制与追加](07.5.md)
|