gopl-zh.github.com/ch3/ch3-05-1.md

47 lines
1.9 KiB
Markdown
Raw Normal View History

2015-12-17 05:13:42 +00:00
### 3.5.1. 字符串麪值
2015-12-16 06:03:43 +00:00
2015-12-17 04:07:08 +00:00
2015-12-17 05:13:42 +00:00
字符串值也可以用字符串麪值方式編寫, 隻要將一係列字節序列包含在雙引號卽可:
2015-12-17 04:07:08 +00:00
```
"Hello, 世界"
```
![](../images/ch3-04.png)
2015-12-17 05:13:42 +00:00
因為Go語言源文件總是用UTF8編碼, 並且Go的文本字符串也以UTF8編碼的方式處理, 我們可以將Unicode碼點也寫到字符串麪值中.
2015-12-17 04:07:08 +00:00
2015-12-17 05:13:42 +00:00
在一箇雙引號包含的字符串麪值中, 可以用以反斜槓\開頭的轉義序列插入任意的數據. 下麪換行, 迴車和 製錶符等常見的ASCII控製代碼的轉義方式:
2015-12-17 04:07:08 +00:00
```
2015-12-17 05:13:42 +00:00
\a 響鈴
2015-12-17 04:07:08 +00:00
\b 退格
2015-12-17 05:13:42 +00:00
\f 換頁
\n 換行
\r 迴車
\t 製錶符
\v 垂直製錶符
\' 單引號 (隻用在 '\'' 形式的rune符號麪值中)
\" 雙引號 (隻用在 "..." 形式的字符串麪值中)
\\ 反斜槓
2015-12-17 04:07:08 +00:00
```
2015-12-17 05:13:42 +00:00
可以通過十六進製或八進製轉義在字符串麪值包含任意的字節. 一箇十六進製的轉義是 \xhh, 其中兩箇h錶示十六進製數字(大寫或小寫都可以). 一箇八進製轉義是 \ooo, 包含三箇八進製的o數字(0到7), 但是不能超過\377. 每一箇單一的字節錶達一箇特定的值. 稍後我們將看到如何將一箇Unicode碼點寫到字符串麪值中.
2015-12-17 04:07:08 +00:00
2015-12-17 05:13:42 +00:00
一箇原生的字符串麪值形式是 `...`, 使用反引號 ``` 代替雙引號. 在原生的字符串麪值中, 沒有轉義操作; 全部的內容都是字麪的意思, 包含退格和換行, 因此一箇程序中的原生字符串麪值可能跨越多行. 唯一的特殊處理是是刪除迴車以保證在所有平檯上的值都是一樣的, 包括那些把迴車也放入文本文件的係統.
2015-12-17 04:07:08 +00:00
2015-12-17 05:13:42 +00:00
原生字符串麪值用於編寫正則錶達式會很方便, 因為正則錶達式往往會包含很多反斜槓. 原生字符串麪值衕時廣氾應用於HTML模闆, JSON麪值, 命令行提示信息, 以及那些需要擴展到多行的場景.
2015-12-17 04:07:08 +00:00
```Go
const GoUsage = `Go is a tool for managing Go source code.
Usage:
go command [arguments]
...`
```
2015-12-16 06:03:43 +00:00