go语言学习笔记 — 基础 — 基本数据类型 — 字符串:转义定义多行字符串
Posted Locutus
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了go语言学习笔记 — 基础 — 基本数据类型 — 字符串:转义定义多行字符串相关的知识,希望对你有一定的参考价值。
- 字符串转义
go语言的字符串常见转义符包含回车、换行、单双引号、制表符等。
转义符 | 含义 |
---|---|
\\r | 转义回车,返回行首 |
\\n | 转义换行,跳到下一行的同列位置 |
\\t | 转义制表 |
\\' | 转义单引号 |
\\" | 转义双引号" |
\\\\ | 转义反斜杠\\ |
实例:
package main
import (
"fmt"
)
func main() {
fmt.Println("str := \\"c:\\\\go\\\\bin\\\\go.exe\\"")
}
- 定义多行字符串
以双引号的形式书写字符串,是字符串的常见表达方式,被称为字符串字面量(string literal)。双引号字面量不能跨行,如果需要在源码中嵌入一个多行字符串时,就必须使用"`"字符。两个反引号间的字符串将被原样赋值到变量str中。
package main
import (
"fmt"
)
const str = `第一行
第二行
第三行
\\r\\n
`
func main() {
fmt.Println(str)
}
在这种方式下,文本将会原样输出。反引号之间的换行将被作为字符串中的换行,但是所有的转义字符均无效,文本将会原样输出。多行字符串一般用于内嵌源码和内嵌数据等。下面定义一个常量codeTemplate
const codeTemplate = `// Generated by github.com/davyxu/cellnet/protoc-gen-msg
// DO NOT EDIT! {{range .Protas}}
// Source: {{ . Name}}{{end}}
package {{ .PackageName}}
{{if gt .TotalMessages 0}}
import (
"github.com/davyxu/cellnet"
"reflect"
_ "github.com/davyxu/cellnet/codec/pb"
}
{{end}}
func init() {
{{range .Protos}}
// {{.Name}} {{range .Messages}}
cellnet.RegisterMessageMeta("pb", "{{.Full Name}}", reflect.TypeOf((*{{.Name}})(nil)).Elem(), {{.MsgID}}) {{end}}
{{end}}
}
`
在 “`” 间的所有代码均不会被go编译器识别,而作为字符串的一部分。
以上是关于go语言学习笔记 — 基础 — 基本数据类型 — 字符串:转义定义多行字符串的主要内容,如果未能解决你的问题,请参考以下文章
go语言学习笔记 — 基础 — 基本数据类型 — 字符串:字符
go语言学习笔记 — 基础 — 基本数据类型 — 原生数据类型:布尔型数字类型(整型与浮点型)字符串类型
go语言学习笔记 — 基础 — 基本数据类型 — 字符串(11):go中的字符串
go语言学习笔记 — 基础 — 基本数据类型 — 类型类别:值类型和引用类型