Go 中的符文到字串轉換
在Go 中使用Unicode 字元時,您可能會遇到需要轉換符文的情況(表示Unicode 字元的整數)轉換為字串。這可能會令人困惑,因為 Go 提供了多種方法來完成此任務。
使用Scanner.Scan() (不正確)
在您提供的程式碼中,您可以使用Scanner.Scan() 將符文轉換為字串。但是,這種方法是不正確的,因為 Scanner.Scan() 是用於詞法分析目的,並且不直接傳回符文字元。相反,它會傳回一個指示令牌類型的常數(例如scanner.Ident或scanner.Int)。
使用Scanner.Next()(正確)
到正確地將符文轉換為字串,您應該使用 Scanner.Next() 來代替。該函數從輸入中讀取下一個符文並將其作為整數返回。然後,您可以使用 strconv.QuoteRune() 函數將符文轉換為字串。
var b scanner.Scanner const a = `a` b.Init(strings.NewReader(a)) c := b.Next() fmt.Println(strconv.QuoteRune(c)) // Output: "'a'"
直接符文到字串轉換
如果您想簡單地將單一符文轉換為字串,可以使用型別轉換。 Rune 是 int32 的別名,Go 支援使用內建 string() 函數將整數值轉換為字串。
r := rune('a') fmt.Println(string(r)) // Output: "a"
循環 Runes
到迭代字串中的符文,您可以使用 for ... range 構造。此技術傳回字串中每個字元的索引和符文值。
for i, r := range "abc" { fmt.Printf("%d - %c (%v)\n", i, r, r) } // Output: // 0 - a (97) // 1 - b (98) // 2 - c (99)
替代方法
將符文轉換為字串的其他方法include:
以上是如何在 Go 中將 Rune 轉換為字串?的詳細內容。更多資訊請關注PHP中文網其他相關文章!