存取Go 字串中的字元
本題探討如何存取Go 字串中的字符,深入研究字串作為切片的本質位元組數以及字元、符文和Unicode 代碼點之間的關係。
原始問:
如何在存取「HELLO」[1]時取得「E」字元而不是數值 69?
答案:
要從字串中檢索字符,必須了解 Go 的字符表示。解釋後的字串文字是以 UTF-8 編碼的字元序列,其中 ASCII 字元僅佔用一個位元組。因此,要獲得“E”字符,需要進行以下轉換:
fmt.Println(string("Hello"[1])) // ASCII only
替代:使用符文
對於Unicode 支持,符文代表Unicode碼點,可以使用。這些與 UTF-8 字串相容:
fmt.Println(string([]rune("Hello, 世界")[1])) // UTF-8
此程式碼將輸出「e」字元。
Go 的字元處理功能
值得注意的是,Go 提供了字元和位元組之間轉換的函數。例如,byte(c) 方法將字元(rune)轉換為對應的位元組,而 rune(b) 將位元組轉換為字元。
其他閱讀:
以上是如何存取 Go 字串中的單一字元而不是數值?的詳細內容。更多資訊請關注PHP中文網其他相關文章!