美文网首页
【Goloang】字符串/Rune - 单引号(') 双引号("

【Goloang】字符串/Rune - 单引号(') 双引号("

作者: 马蹄哒 | 来源:发表于2020-02-17 19:06 被阅读0次

    简单来说,Go只有两种字符串表示方式:

    • 使用反引号(`)- Raw string literal:
      反斜线(\)不会被转义
      可以换行

    • 使用双引号(")- Interpreted sting literal:
      反斜线(\)会被转义:转义字符(如,“\n”);或者字符编码(如,16进制编码:\xNN,unicode编码:\uNNNN或\Unnnnnnnn,十进制编码(0~255):\nnn)
      不可以换行
      \' (转义单引号)是非法的
      \r 回车符将被忽视

    不能使用单引号(')表示字符串,单引号只能用于单个字符(或字符编码)

    示例:

    package main
    
    import "fmt"
    
    func main() {
        //双引号
        s := "Hello World \n"
        fmt.Printf("%s", s)
        fmt.Printf("%#x\n", "a")  // a 的编码:\x61
        fmt.Println("\x61")       // a
        fmt.Println("\u0061")     // a
        fmt.Println("\U00000061") // a
        fmt.Printf("%x\n", "中")
        fmt.Println("\xe4\xb8\xad文") //中 的编码
        //unicode
        for pos, char := range "中\x80文" { // \x80 is an illegal UTF-8 encoding
            fmt.Printf("character %#U starts at byte position %d\n", char, pos)
        }
        fmt.Println("\u4e2d")     //中 的编码
        fmt.Println("\U00004e2d") //中 的编码
    
        //反引号
        fmt.Println(`how
        are
        you \n`) // \n 不转义
    
        //单引号
        fmt.Printf("%x\n", 'a')       // a的编码
        fmt.Println(string('\x61'))   // a
        fmt.Println(string('\u0061')) // a
    }
    
    
    

    输出:

    Hello World
    0x61
    a
    a
    a
    e4b8ad
    中文
    character U+4E2D '中' starts at byte position 0
    character U+FFFD '�' starts at byte position 3
    character U+6587 '文' starts at byte position 4
    中
    中
    how
        are
        you \n
    61
    a
    a
    

    相关文章

      网友评论

          本文标题:【Goloang】字符串/Rune - 单引号(') 双引号("

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