精校:7.6

This commit is contained in:
Unknwon
2015-08-01 14:35:59 +08:00
parent f457825d44
commit 9e31cf3014
2 changed files with 9 additions and 8 deletions

5
TOC.md
View File

@@ -1,6 +1,6 @@
- [前言](eBook/preface.md)
- 第一部分:学习 Go 语言
- 第1章Go 语言的起源,发展与普及
- 第1章Go 语言的起源,发展与普及
- 1.1 [起源与发展](eBook/01.1.md)
- 1.2 [语言的主要特性与发展的环境和影响因素](eBook/01.2.md)
- 第2章安装与运行环境
@@ -58,4 +58,5 @@
- 7.2 [切片](eBook/07.2.md)
- 7.3 [For-range 结构](eBook/07.3.md)
- 7.4 [切片重组reslice](eBook/07.4.md)
- 7.5 [切片的复制与追加](eBook/07.5.md)
- 7.5 [切片的复制与追加](eBook/07.5.md)
- 7.6 [字符串、数组和切片的应用](eBook/07.6.md)

View File

@@ -37,7 +37,7 @@ b = append(b, s...)
## 7.6.2 获取字符串的某一部分
使用 `substr := str[start:end]` 可以从字符串 str 获取到从索引 start 开始到 end-1 位置的子字符串。同样的,`str[start:]` 则表示获取从 start 开始到 len(str)-1 位置的子字符串。而 `str[:end]` 表示获取从 0 开始到 end-1 的子字符串。
使用 `substr := str[start:end]` 可以从字符串 str 获取到从索引 start 开始到 `end-1` 位置的子字符串。同样的,`str[start:]` 则表示获取从 start 开始到 `len(str)-1` 位置的子字符串。而 `str[:end]` 表示获取从 0 开始到 `end-1` 的子字符串。
## 7.6.3 字符串和切片的内存结构
@@ -45,7 +45,7 @@ b = append(b, s...)
字符串 `string s = "hello"` 和子字符串 `t = s[2:3]` 在内存中的结构可以用下图表示:
![](images/7.6_fig7.4.png)
![](../images/7.6_fig7.4.png)
## 7.6.4 修改字符串中的某个字符
@@ -66,7 +66,7 @@ s2 := string(c) // s2 == "cello"
## 7.6.5 字节数组对比函数
下面的 `Compare` 函数会返回两个字节数组字典顺序的整数对比结果,即 `0 if a ==b, -1 if a < b, 1 if a > b`
下面的 `Compare` 函数会返回两个字节数组字典顺序的整数对比结果,即 `0 if a == b, -1 if a < b, 1 if a > b`
```go
func Compare(a, b[]byte) int {
@@ -150,7 +150,7 @@ func FindDigits(filename string) []byte {
}
```
这段代码可以顺利运行,但返回的 []byte 指向的底层是整个文件的数据。只要该返回的切片不被释放,垃圾回收器就不能释放整个文件所占用的内存。换句话说,一点点有用的数据却占用了整个文件的内存。
这段代码可以顺利运行,但返回的 `[]byte` 指向的底层是整个文件的数据。只要该返回的切片不被释放,垃圾回收器就不能释放整个文件所占用的内存。换句话说,一点点有用的数据却占用了整个文件的内存。
想要避免这个问题,可以通过拷贝我们需要的部分到一个新的切片中:
@@ -174,11 +174,11 @@ func FindDigits(filename string) []byte {
**练习 7.14**
编写一个程序,要求能够反转字符串,即将 “Google” 转换成 “elgooG”提示使用 []byte 类型的切片)。
编写一个程序,要求能够反转字符串,即将 “Google” 转换成 “elgooG”提示使用 `[]byte` 类型的切片)。
如果您使用两个切片来实现反转,请再尝试使用一个切片(提示:使用交换法)。
如果您想要反转 Unicode 编码的字符串,请使用 []int 类型的切片。
如果您想要反转 Unicode 编码的字符串,请使用 `[]int` 类型的切片。
**练习 7.15**