В настоящее время поддержка символов Unicode является распространенным требованием — Go разработан с учетом поддержки Unicode, что является основной причиной наличия типа данных rune. Руна — это значение int32, которое используется для представления одного кодового пункта Unicode. Руна представляет собой целое значение и используется для представления отдельных символов Unicode или, реже, для предоставления информации о форматировании.
Вы можете определить руну, используя одинарные кавычки: r := '€', а вывести целое значение составляющих ее байтов с помощью fmt.Println(r) — в этом случае целочисленное значение равно 8364. Для вывода в виде одного символа Unicode потребуется использование управляющей строки %c в fmt.Printf().
package main import "fmt" func main() { aString := "Hello World! €" fmt.Println("First character", string(aString[0])) // Runes // A rune r := '€' fmt.Println("As an int32 value:", r) // Convert Runes to text fmt.Printf("As a string: %s and as a character: %c\n", r, r) // Print an existing string as runes for _, v := range aString { fmt.Printf("%x ", v) } fmt.Println() // String to rune Array // myRune := []rune(aString) // fmt.Printf("myRune %U\n", myRune) // Rune array to string // runeArray := []rune{'1', '2', '3'} // s := string(runeArray) // fmt.Println(s) // Print an existing string as characters for _, v := range aString { fmt.Printf("%c", v) } fmt.Println() }