mirror of
				https://github.com/gopl-zh/gopl-zh.github.com.git
				synced 2025-10-31 02:03:13 +00:00 
			
		
		
		
	Update ch3-05-1.md
This commit is contained in:
		| @@ -1,4 +1,46 @@ | |||||||
| ### 3.5.1. 字符串面值 | ### 3.5.1. 字符串面值 | ||||||
|  |  | ||||||
| TODO |  | ||||||
|  | 字符串值也可以用字符串面值方式编写, 只要将一系列字节序列包含在双引号即可: | ||||||
|  |  | ||||||
|  | ``` | ||||||
|  | "Hello, 世界" | ||||||
|  | ``` | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  | 因为Go语言源文件总是用UTF8编码, 并且Go的文本字符串也以UTF8编码的方式处理, 我们可以将Unicode码点也写到字符串面值中. | ||||||
|  |  | ||||||
|  | 在一个双引号包含的字符串面值中, 可以用以反斜杠\开头的转义序列插入任意的数据. 下面换行, 回车和 制表符等常见的ASCII控制代码的转义方式: | ||||||
|  |  | ||||||
|  | ``` | ||||||
|  | \a      响铃 | ||||||
|  | \b      退格 | ||||||
|  | \f      换页 | ||||||
|  | \n      换行 | ||||||
|  | \r      回车 | ||||||
|  | \t      制表符 | ||||||
|  | \v      垂直制表符 | ||||||
|  | \'      单引号 (只用在 '\'' 形式的rune符号面值中) | ||||||
|  | \"      双引号 (只用在 "..." 形式的字符串面值中) | ||||||
|  | \\      反斜杠 | ||||||
|  | ``` | ||||||
|  |  | ||||||
|  | 可以通过十六进制或八进制转义在字符串面值包含任意的字节. 一个十六进制的转义是 \xhh, 其中两个h表示十六进制数字(大写或小写都可以). 一个八进制转义是 \ooo, 包含三个八进制的o数字(0到7), 但是不能超过\377. 每一个单一的字节表达一个特定的值. 稍后我们将看到如何将一个Unicode码点写到字符串面值中. | ||||||
|  |  | ||||||
|  | 一个原生的字符串面值形式是 `...`, 使用反引号 ``` 代替双引号. 在原生的字符串面值中, 没有转义操作; 全部的内容都是字面的意思, 包含退格和换行, 因此一个程序中的原生字符串面值可能跨越多行. 唯一的特殊处理是是删除回车以保证在所有平台上的值都是一样的, 包括那些把回车也放入文本文件的系统. | ||||||
|  |  | ||||||
|  | 原生字符串面值用于编写正则表达式会很方便, 因为正则表达式往往会包含很多反斜杠. 原生字符串面值同时广泛应用于HTML模板, JSON面值, 命令行提示信息, 以及那些需要扩展到多行的场景. | ||||||
|  |  | ||||||
|  | ```Go | ||||||
|  | const GoUsage = `Go is a tool for managing Go source code. | ||||||
|  |  | ||||||
|  | Usage: | ||||||
|  | 	go command [arguments] | ||||||
|  | ...` | ||||||
|  | ``` | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user