mirror of
https://github.com/unknwon/the-way-to-go_ZH_CN.git
synced 2025-08-11 22:53:43 +08:00
07.4
This commit is contained in:
@@ -9,7 +9,7 @@
|
|||||||
|
|
||||||
## 翻译进度
|
## 翻译进度
|
||||||
|
|
||||||
7.3 [For-range 结构](eBook/07.3.md)
|
7.4 [切片重组](eBook/07.4.md)
|
||||||
|
|
||||||
## 支持本书
|
## 支持本书
|
||||||
|
|
||||||
|
@@ -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)
|
- 上一节:[For-range 结构](07.3.md)
|
||||||
- 下一节:[拷贝与追加slice](07.5.md)
|
- 下一节:[切片的复制与追加](07.5.md)
|
@@ -1,4 +1,7 @@
|
|||||||
#7.5 拷贝与追加slice
|
# 7.5 切片的复制与追加
|
||||||
|
|
||||||
|
176
|
||||||
|
|
||||||
如果想增加slice的容量,我们必须创建一个新的更大的slice并把原分片的内容都拷贝过来。下面的代码描述了从拷贝slice的copy方法和向slice追加新元素的append方法。
|
如果想增加slice的容量,我们必须创建一个新的更大的slice并把原分片的内容都拷贝过来。下面的代码描述了从拷贝slice的copy方法和向slice追加新元素的append方法。
|
||||||
|
|
||||||
示例 7.12 [copy_append_slice.go](exmaples/chapter_7/copy_append_slice.go)
|
示例 7.12 [copy_append_slice.go](exmaples/chapter_7/copy_append_slice.go)
|
||||||
|
@@ -63,6 +63,7 @@
|
|||||||
- 7.2 [切片](07.2.md)
|
- 7.2 [切片](07.2.md)
|
||||||
- 7.3 [For-range 结构](07.3.md)
|
- 7.3 [For-range 结构](07.3.md)
|
||||||
- 7.4 [切片重组](07.4.md)
|
- 7.4 [切片重组](07.4.md)
|
||||||
|
- 7.5 [切片的复制与追加](07.5.md)
|
||||||
- 第8章:Maps
|
- 第8章:Maps
|
||||||
- 第9章:包(package)
|
- 第9章:包(package)
|
||||||
- 第10章:结构(struct)与方法(method)
|
- 第10章:结构(struct)与方法(method)
|
||||||
|
Reference in New Issue
Block a user