Перебор рун строки в Go
Давайте теперь будем перебирать руны строки.
Перебор отдает буквы целиком, а не по байтам.
После range указывают переменную
со строкой: на каждом круге можно взять индекс
байта и руну, но часто индекс не нужен.
Пустое имя _ отбрасывает позицию байта,
если важна только буква. Для текста с символами
вне латиницы это дает правильные знаки: каждая
руна - один видимый символ, даже если в памяти
он занимает несколько байт.
Пусть дано короткое слово с русской буквой. Обойдем его:
text := "мир"
for _, r := range text {
fmt.Printf("%c\n", r) // выведет м, и и р
}
Если бы обход шел по байтам, многобайтовая буква разбилась бы на части; здесь каждый круг дает целую руну.
Дана строка:
word := "мир"
Переберите word и выведите каждую
букву на отдельной строке как символ.
Дана строка:
text := "ok"
Переберите text, отбросив индекс,
и выведите обе буквы по одной на строку.
Скажите, зачем в паре с руной ставят _,
если номер байта в задаче не используется.