Go語言的字符串類型string
在本質上就與其他語言的字符串類型不同:
-
Java的String、C++的std::string以及Python3的str類型都只是定寬字符序列
-
Go語言的字符串是一個用UTF-8編碼的變寬字符序列,它的每一個字符都用一個或多個字節表示
即:一個Go語言字符串是一個任意字節的常量序列。
Golang的雙引號和反引號都可用於表示一個常量字符串,不同在於:
-
雙引號用來創建可解析的字符串字面量(支持轉義,但不能用來引用多行)
-
反引號用來創建原生的字符串字面量,這些字符串可能由多行組成(不支持任何轉義序列),原生的字符串字面量多用於書寫多行消息、HTML以及正則表達式
而單引號則用於表示Golang的一個特殊類型:rune
,類似其他語言的byte
但又不完全一樣,是指:碼點字面量(Unicode code point),不做任何轉義的原始內容。