Golang的單引號、雙引號與反引號

Go語言的字符串類型string在本質上就與其他語言的字符串類型不同:

  • Java的String、C++的std::string以及Python3的str類型都只是定寬字符序列
  • Go語言的字符串是一個用UTF-8編碼的變寬字符序列,它的每一個字符都用一個或多個位元組表示

即:一個Go語言字符串是一個任意位元組的常量序列

Golang的雙引號和反引號都可用於表示一個常量字符串,不同在於:

  • 雙引號用來創建可解析的字符串字面量(支持轉義,但不能用來引用多行)
  • 反引號用來創建原生的字符串字面量,這些字符串可能由多行組成(不支持任何轉義序列),原生的字符串字面量多用於書寫多行消息、HTML以及正則表達式

而單引號則用於表示Golang的一個特殊類型:rune,類似其他語言的byte但又不完全一樣,是指:碼點字面量(Unicode code point),不做任何轉義的原始內容。


參考鏈接:https://crazyof.me/blog/archives/2539.ht…