mirror of
https://github.com/unknwon/the-way-to-go_ZH_CN.git
synced 2025-08-11 22:53:43 +08:00
7.6.3
This commit is contained in:
@@ -1,6 +1,6 @@
|
|||||||
# 7.6 字符串、数组和切片的应用
|
# 7.6 字符串、数组和切片的应用
|
||||||
|
|
||||||
# 7.6.1 从字符串生成字节切片
|
## 7.6.1 从字符串生成字节切片
|
||||||
|
|
||||||
假设 s 是一个字符串(本质上是一个字节数组),那么就可以直接通过 `c := []bytes(s)` 来获取 c 为一个元素类型为字节的切片。另外,您还可以通过 copy 函数来实现:`copy(dst []byte, src string)`.
|
假设 s 是一个字符串(本质上是一个字节数组),那么就可以直接通过 `c := []bytes(s)` 来获取 c 为一个元素类型为字节的切片。另外,您还可以通过 copy 函数来实现:`copy(dst []byte, src string)`.
|
||||||
|
|
||||||
@@ -35,12 +35,20 @@ var s string
|
|||||||
b = append(b, s...)
|
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 的子字符串。
|
使用 `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]` 在内存中的结构可以用下图表示:
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
## 7.6.4 修改字符串中的某个字符
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
179
|
180
|
||||||
|
BIN
eBook/images/7.6_fig7.4.png
Normal file
BIN
eBook/images/7.6_fig7.4.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 132 KiB |
Reference in New Issue
Block a user