Чтобы отразить пример, приведенный в golang.org, Go позволяет легко преобразовать строку в кусок рун, а затем перебрать что, как и вы хотели изначально:
runes := []rune("Hello, 世界")
for i := 0; i < len(runes) ; i++ {
fmt.Printf("Rune %v is '%c'\n", i, runes[i])
}
Конечно, мы могли бы также использовать оператор диапазона, как и в других примерах здесь, но это более внимательно следует вашему оригинальному синтаксису. В любом случае это будет выводить:
Rune 0 is 'H'
Rune 1 is 'e'
Rune 2 is 'l'
Rune 3 is 'l'
Rune 4 is 'o'
Rune 5 is ','
Rune 6 is ' '
Rune 7 is '世'
Rune 8 is '界'
Обратите внимание, что поскольку тип rune является псевдонимом для int32, мы должны использовать %c вместо обычного %v в инструкции Printf, или мы увидим целочисленное представление кода Unicode (см. Tour of Go).