mirror of
https://github.com/unknwon/the-way-to-go_ZH_CN.git
synced 2025-08-11 22:06:51 +08:00
精校:4.6
This commit is contained in:
@@ -28,11 +28,11 @@ Go 支持以下 2 种形式的字面值:
|
|||||||
|
|
||||||
一般的比较运算符(`==`、`!=`、`<`、`<=`、`>=`、`>`)通过在内存中按字节比较来实现字符串的对比。你可以通过函数 `len()` 来获取字符串所占的字节长度,例如:`len(str)`。
|
一般的比较运算符(`==`、`!=`、`<`、`<=`、`>=`、`>`)通过在内存中按字节比较来实现字符串的对比。你可以通过函数 `len()` 来获取字符串所占的字节长度,例如:`len(str)`。
|
||||||
|
|
||||||
字符串的内容(纯字节)可以通过标准索引法来获取,在中括号 `[]` 内写入索引,索引从 0 开始计数。
|
字符串的内容(纯字节)可以通过标准索引法来获取,在中括号 `[]` 内写入索引,索引从 0 开始计数:
|
||||||
|
|
||||||
字符串 str 的第 1 个字节: str[0]
|
- 字符串 str 的第 1 个字节:`str[0]`
|
||||||
第 i 个字节: str[i]
|
- 第 i 个字节:`str[i]`
|
||||||
最后 1 个字节: str[len(str)-1]
|
- 最后 1 个字节:`str[len(str)-1]`
|
||||||
|
|
||||||
需要注意的是,这种转换方案只对纯 ASCII 码的字符串有效。
|
需要注意的是,这种转换方案只对纯 ASCII 码的字符串有效。
|
||||||
|
|
||||||
@@ -46,16 +46,20 @@ Go 支持以下 2 种形式的字面值:
|
|||||||
|
|
||||||
你可以通过以下方式来对代码中多行的字符串进行拼接:
|
你可以通过以下方式来对代码中多行的字符串进行拼接:
|
||||||
|
|
||||||
str := “Beginning of the string “+
|
```go
|
||||||
“second part of the string”
|
str := "Beginning of the string " +
|
||||||
|
"second part of the string"
|
||||||
|
```
|
||||||
|
|
||||||
由于编译器行尾自动补全分号的缘故,加号 `+` 必须放在第一行。
|
由于编译器行尾自动补全分号的缘故,加号 `+` 必须放在第一行。
|
||||||
|
|
||||||
拼接的简写形式 `+=` 也可以用于字符串:
|
拼接的简写形式 `+=` 也可以用于字符串:
|
||||||
|
|
||||||
|
```go
|
||||||
s := “hel” + “lo,”
|
s := “hel” + “lo,”
|
||||||
s += “world!”
|
s += “world!”
|
||||||
fmt.Println(s) //输出 “hello, world!”
|
fmt.Println(s) //输出 “hello, world!”
|
||||||
|
```
|
||||||
|
|
||||||
在循环中使用加号 `+` 拼接字符串并不是最高效的做法,更好的办法是使用函数 `strings.Join()`(第 4.7.10 节),有没有更好地办法了?有!使用字节缓冲(`bytes.Buffer`)拼接更加给力(第 7.2.6 节)!
|
在循环中使用加号 `+` 拼接字符串并不是最高效的做法,更好的办法是使用函数 `strings.Join()`(第 4.7.10 节),有没有更好地办法了?有!使用字节缓冲(`bytes.Buffer`)拼接更加给力(第 7.2.6 节)!
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user