Unknwon 11 anos atrás
pai
commit
580391eac9
2 arquivos alterados com 12 adições e 4 exclusões
  1. 12 4
      eBook/07.6.md
  2. BIN
      eBook/images/7.6_fig7.4.png

+ 12 - 4
eBook/07.6.md

@@ -1,6 +1,6 @@
 # 7.6 字符串、数组和切片的应用
 
-# 7.6.1 从字符串生成字节切片
+## 7.6.1 从字符串生成字节切片
 
 假设 s 是一个字符串(本质上是一个字节数组),那么就可以直接通过 `c := []bytes(s)` 来获取 c 为一个元素类型为字节的切片。另外,您还可以通过 copy 函数来实现:`copy(dst []byte, src string)`.
 
@@ -35,12 +35,20 @@ var s string
 b = append(b, s...)
 ```
 
-# 7.6.2 获取字符串的某一部分
+## 7.6.2 获取字符串的某一部分
 
 使用 `substr := str[start:end]` 可以从字符串 str 获取到从索引 start 开始到 end-1 位置的子字符串。同样的,`str[start:]` 则表示获取从 start 开始到 len(str)-1 位置的子字符串。而 `str[:end]` 表示获取从 0 开始到 end-1 的子字符串。
 
-# 7.6.3 字符串和切片的内存结构
+## 7.6.3 字符串和切片的内存结构
 
+在内存中,一个字符串实际上是一个双字结构,即一个指向实际数据的指针和记录字符串长度的整数(见图 7.4)。因为指针对用户来说是完全不可见,因此我们可以依旧把字符串看做是一个值类型,也就是一个字符数组。
 
+字符串 `string s = "hello"` 和子字符串 `t = s[2:3]` 在内存中的结构可以用下图表示:
 
-179
+![](images/7.6_fig7.4.png)
+
+## 7.6.4 修改字符串中的某个字符
+
+
+
+180

BIN
eBook/images/7.6_fig7.4.png