go语言学习笔记 — 基本数据类型 — 字符串(8):转义字符串,定义多行字符串

  • 字符串转义

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编译器识别,而作为字符串的一部分。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值