diff --git a/TOC.md b/TOC.md index af7e8ad..3fa9c48 100644 --- a/TOC.md +++ b/TOC.md @@ -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) \ No newline at end of file + - 7.5 [切片的复制与追加](eBook/07.5.md) + - 7.6 [字符串、数组和切片的应用](eBook/07.6.md) \ No newline at end of file diff --git a/eBook/07.6.md b/eBook/07.6.md index 894ec19..35fc915 100644 --- a/eBook/07.6.md +++ b/eBook/07.6.md @@ -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**