這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。
跟著“碼術”一起學習Golang語言,偷懶了好多天啦,今天繼續講解Golang中的類型。今天講解的是字串。
學習Golang語言(1): Hello World
學習Golang語言(2): 變數
學習Golang語言(3):類型--布爾型和數實值型別
學習Golang語言(4):類型--字串
學習Golang語言(5):類型--數組
學習Golang語言(6):類型--切片
數實值型別
補充上一章節沒有指出的地方:
Golang還定義了三種依賴系統的類型:int、unint和uintptr。因為在32位系統和64位系統上用來表示這些類型的位元是不同的。
字串
Golang中另一個重要的內建類型是string。
字串就是一串固定長度的字元串連起來的字元序列。Go的字串是由單個位元組串連起來的。也就是說對於傳統的字串是由字元組成的,而Go的字串不同,它是由位元組組成的。
Go語言的字串的位元組使用UTF-8編碼標識Unicode文本。
字串的表示很簡單,用雙引號("")或者反引號(``)來建立。例如:"hello world" 或者 `hello world`。
兩者的區別:
雙引號之間的轉義符會被轉義,而反引號之間的字元保持不變。例如:
輸出:
如果使用單引號(')則表示一個字元(UTF-8編碼)----這種在Go語言中不是string。
字串一旦賦值了,字串就不能修改了:在Go中字串是不可變的。一些操作在Go是非法的。
var s = "hello world"
s[0] = 'c' <-----修改第一個字元為'c',這回報錯。
在Go中實現這個需要這麼操作:
1、將s轉換為rune數組;2、修改數組的第一個元數;3、建立新的字串s2;4、列印輸出。
多行字串
由於Go語言會在每行後自動添加分號,因此使用多行字串時候,需要注意:
s := "Starting part"
+ "Ending part"
會被自動轉換為:
s := "Starting part";
+ "Ending part";
這個是錯誤 的,應當寫成:
s := "Starting part"+ "Ending part"
這樣Go就不會在錯誤的地方插入分號,另外一種方式就是使用反引號(``)作為原始字串符號:
s := `Starting part
Ending part`
此時s也包含了換行。因為反引號中間的字元會保持不變。
字串轉換
可以使用string(char)將一個字元轉換成一個包含單個字元的字串。
字串處理的包
---------------------------------------------
string包
包括字串的分割,替換,合并等處理;
strconv包
提供許多可以在字串和其他類型的資料之間的轉換函式。
utf-8包
主要用來查詢和操作UTF-8編碼的字串或者字元切片。
unicode包
提供一些用來檢查Unicode碼點是否符合主要標準的函數。
---------------------------------------------
rune
Rune是int32的別名。用UTF-8進行編碼。這個類型什麼時候使用呢?例如需要遍曆字串的字元時候,可以混換每個位元組。為了獲得實際的字元,需要使用rune類型。
輸出結果:
6
2 [20320 22909]
---------------------------------------------
歡迎關注碼術!一起學習Golang語言。