首頁 >後端開發 >Golang >如何有效率地存取和轉換Go字串中的字元?

如何有效率地存取和轉換Go字串中的字元?

Mary-Kate Olsen
Mary-Kate Olsen原創
2024-12-19 06:22:13782瀏覽

How to Efficiently Access and Convert Characters in Go Strings?

Golang 字串中的字元索引

Go 字串表示為 UTF-8 編碼中的位元組序列。若要存取可能佔用多個位元組的單一字符,可以利用字串或 []rune 轉換。

存取 ASCII 字元

在範例中:

fmt.Print("HELLO"[1])

存取字串「HELLO」索引 1 處的字元。由於 ASCII 字元僅佔用一個位元組,因此結果為位元組值 69。

將位元組轉換為字元

要取得實際的字元值,可以將位元組轉換到一個字串。這可確保正確的UTF-8 處理:

fmt.Println(string("Hello"[1])) // ASCII only

存取Unicode 字元

對於可以跨越多個位元組的Unicode 字符,需要[]rune 轉換:

fmt.Println(string([]rune("Hello, 世界")[1])) // UTF-8

將符文轉換為位元組

要將符文轉換回位元組切片,可以將其作為參數傳遞給[]byte:

fmt.Println(string([]byte("Hello"))) // ASCII only

參考文獻:

  • [Go 程式語言規格部分轉換](https://go.dev/ref/spec#Conversions)
  • [Go 部落格:Go 中的字串、位元組、符文和字元](https://blog.golang.org/strings -bytes-runes-and-characters-in-go)

以上是如何有效率地存取和轉換Go字串中的字元?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn