美文网首页
golang的双引号文本和反引号文本

golang的双引号文本和反引号文本

作者: CodingCode | 来源:发表于2020-03-19 05:05 被阅读0次

    golang的双引号和反引号

    反引号(back quote)就是"`",就是键盘上和"~"一个键的那个。

    他们的区别就是:

    1. 双引号的文本会被解析,比如转义字符等,而
    2. 反引号的文本不会被解析,叫raw literals。

    举个例子来说:

    package main
    
    import  "fmt"
    
    func main() {
        fmt.Printf("[%s]\n", "Hello\tWorld!")
        fmt.Printf("[%s]\n", `Hello\tWorld!`)
    }
    

    上面程序运行结果就是:

    [Hello  World!]
    [Hello\tWorld!]
    

    双引号文本里面的\t,被解析成一个tab键,所以输出的时候就转化成了tab键;而反引号文本的\t并没有被解析成tab键,而是按照字面内容输出。

    另外反引号文本可以包含换行符,而双引号文本则不能:

         1  package main
         2  
         3  import "fmt"
         4  
         5  func main() {
         6      fmt.Printf("[%s]\n", "Hello
         7  World!")
         8      fmt.Printf("[%s]\n", `Hello
         9  World!`)
        10  }
    

    编译就出错:

    ./main.go:6:29: newline in string
    ./main.go:6:29: syntax error: unexpected newline, expecting comma or )
    ./main.go:7:9: newline in string
    

    所以反引号最常用的两个场景是:

    1. 包含多行的大段文本
    2. regex的定义文本串
      例如,re := regexp.MustCompile(`a(x*)b`)

    相关文章

      网友评论

          本文标题:golang的双引号文本和反引号文本

          本文链接:https://www.haomeiwen.com/subject/nmtkyhtx.html