Go 語言中的字符串
Go 語言中的字符串是 byte
值的序列。
如前所述,你可以使用下面的語法來定義一個字符串:
1 | var name = "test" |
需要注意的是,和其他語言不同,字符串只能使用雙引號來定義,不能使用單引號。
要獲取字符串的長度,可以使用內建的 len()
函數:
1 | len(name) //4 |
你可以使用方括號來訪問字符串中的個別字符,通過傳遞所需字符的索引:
1 | name[0] //"t"(索引從 0 開始) |
你可以使用以下語法獲取字符串的一部分:
1 | name[0:2] //"te" |
使用這種方式,你可以創建字符串的副本:
1 | var newstring = name[:] |
你可以將字符串分配給一個新變量:
1 | var first = "test" |
字符串是不可變的,這意味著你不能更新字符串的值。
即使你使用賦值運算符將新值分配給 first
,second
的值仍然是 "test"
:
1 | var first = "test" |
字符串是引用類型,這意味著如果你將一個字符串傳遞給一個函數,會複製字符串的引用,而不是它的值。但由於字符串是不可變的,在這種情況下與傳遞一個 int
沒有太大區別。
你可以使用 +
運算符來連接兩個字符串:
1 | var first = "first" |
Go 語言提供了幾個字符串工具,都在 strings
包中。
我們已經在「Hello, World!」的例子中看到了如何導入一個包。
這是如何導入 strings
包的例子:
1 | package main |
然後你就可以使用它了。
例如,我們可以使用 HasPrefix()
函數來檢查字符串是否以特定子字符串開頭:
1 | package main |
可以在這裡找到所有可用的方法:https://pkg.go.dev/strings
以下是你可能經常使用的一些方法的列表:
strings.ToUpper()
返回一個新字符串,全大寫strings.ToLower()
返回一個新字符串,全小寫strings.HasSuffix()
檢查字符串是否以子字符串結尾strings.HasPrefix()
檢查字符串是否以子字符串開頭strings.Contains()
檢查字符串是否包含子字符串strings.Count()
計算一個子字符串在另一個字符串中出現的次數strings.Join()
用於連接多個字符串並創建一個新字符串strings.Split()
用於從字符串創建一個字符串數組,通過特定字符(如逗號或空格)將原始字符串切割strings.ReplaceAll()
用於替換字符串中的一部分並將其替換為新內容
tags: [“string manipulation”, “Go programming”, “strings package”]