golang中的单引号转义问题
golang的单引号转义
如题,golang中有时候需要将一个字符串中的单引号再转义一次,比如在两个单引号之间包含一个含有单引号的字符串的情形。
但是这个转义却不像C语言里的那样,比如这样写:info = strings.Replace(info, "\'", "\\\'", -1)
就报unknown escape sequence错误。
正确的写法是:
info = strings.Replace(info, "'", "\\'", -1)
我想这里应该是:在两个双引号之间不需要使用\'来表示单引号。
go语言中的单引号、双引号和反引号
1.单引号
单引号在go语言中表示golang中的rune(int32)类型,单引号里面是单个字符,对应的值为改字符的ASCII值。
func main() {
a := 'A'
fmt.Println(a)
}输出:
random@random-wz MINGW64 /c/GOPATH/src/Test
$ go run main.go
65
2.双引号
在go语言中双引号里面可以是单个字符也可以是字符串,双引号里面可以有转义字符,如\n、\r等,对应go语言中的string类型。
func main() {
a := "Hello golang\nI am random_wz."
fmt.Println(a)
}输出:
random@random-wz MINGW64 /c/GOPATH/src/Test
$ go run main.go
Hello golang
I am random_wz.
3.反引号
反引号中的字符表示其原生的意思,在单引号中的内容可以是多行内容,不支持转义。
func main() {
a := `Hello golang\n:
I am random_wz.
Good.`
fmt.Println(a)
}输出:
random@random-wz MINGW64 /c/GOPATH/src/Test
$ go run main.go
Hello golang\n:
I am random_wz.
Good.
可以看到\n并没有被转义,而是被直接作为字符串输出。
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
相关文章
Go开发go-optioner工具实现轻松生成函数选项模式代码
go-optioner 是一个在 Go 代码中生成函数选项模式代码的工具,可以根据给定的结构定义自动生成相应的选项代码,下面就来聊聊go-optioner是如何使用的吧2023-07-07
Go中字符串处理 fmt.Sprintf与string.Builder的区别对比分析
在Go语言中,我们通常会遇到两种主要的方式来处理和操作字符串:使用fmt.Sprintf函数和string.Builder类型,本文给大家介绍它们在性能和用法上有一些关键区别,感兴趣的朋友跟随小编一起看看吧2023-11-11


最新评论