golang中的单引号转义问题

 更新时间:2023年02月20日 15:07:18   作者:qiuchangyong  
这篇文章主要介绍了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 并发实现协程同步的多种解决方法

    这篇文章主要介绍了Go 并发——实现协程同步的多种解决方法,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下
    2018-08-08
  • 解决Golang在Web开发时前端莫名出现的空白换行

    解决Golang在Web开发时前端莫名出现的空白换行

    最近在使用Go语言开发Web时,在前端莫名出现了空白换行,找了网上的一些资料终于找到了解决方法,现在分享给大家,有需要的可以参考。
    2016-08-08
  • Go 实战单队列到优先级队列实现图文示例

    Go 实战单队列到优先级队列实现图文示例

    这篇文章主要为大家介绍了Go 实战单队列到优先级队列图文示例实现详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-07-07
  • Go开发go-optioner工具实现轻松生成函数选项模式代码

    Go开发go-optioner工具实现轻松生成函数选项模式代码

    go-optioner 是一个在 Go 代码中生成函数选项模式代码的工具,可以根据给定的结构定义自动生成相应的选项代码,下面就来聊聊go-optioner是如何使用的吧
    2023-07-07
  • Golang 之区分类型别名与类型定义的方法

    Golang 之区分类型别名与类型定义的方法

    这篇文章主要介绍了Golang 之区分类型别名与类型定义的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-02-02
  • Go中字符串处理 fmt.Sprintf与string.Builder的区别对比分析

    Go中字符串处理 fmt.Sprintf与string.Builder的区别对比分析

    在Go语言中,我们通常会遇到两种主要的方式来处理和操作字符串:使用fmt.Sprintf函数和string.Builder类型,本文给大家介绍它们在性能和用法上有一些关键区别,感兴趣的朋友跟随小编一起看看吧
    2023-11-11
  • GoLang逃逸分析讲解

    GoLang逃逸分析讲解

    我们都知道go语言中内存管理工作都是由Go在底层完成的,这样我们可以不用过多的关注底层的内存问题。本文主要总结一下 Golang内存逃逸分析,需要的朋友可以参考以下内容,希望对大家有帮助
    2022-12-12
  • GO语言利用K近邻算法实现小说鉴黄

    GO语言利用K近邻算法实现小说鉴黄

    本文给大家分享的是一段GO语言利用K近邻算法实现小说鉴黄的方法,本方法的鉴别的关键是关键是向量点的选择和阈值的判定,推荐给大家,有需要的小伙伴可以参考下。
    2015-03-03
  • golang使用redis实现全文搜索功能详解

    golang使用redis实现全文搜索功能详解

    这篇文章主要为大家详细介绍了golang如何使用redis实现全文搜索功能,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下
    2025-02-02
  • 基于Golang 高并发问题的解决方案

    基于Golang 高并发问题的解决方案

    这篇文章主要介绍了Golang 高并发问题的解决方案,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-05-05

最新评论