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语言学习笔记 — 基础 — 基本数据类型 — 类型类别:值类型和引用类型

go语言学习笔记 — 基础 — 基本数据类型 — 字符串:遍历字符串

go语言学习笔记 — 基础 — 基本数据类型 — 字符串:修改字符串