Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
⊗goPmLpSR 120 of 350 menu
◀ ▶

Перебор рун строки в Go

Давайте теперь будем перебирать руны строки. Перебор отдает буквы целиком, а не по байтам. После range указывают переменную со строкой: на каждом круге можно взять индекс байта и руну, но часто индекс не нужен.

Пустое имя _ отбрасывает позицию байта, если важна только буква. Для текста с символами вне латиницы это дает правильные знаки: каждая руна - один видимый символ, даже если в памяти он занимает несколько байт.

Пусть дано короткое слово с русской буквой. Обойдем его:

text := "мир" for _, r := range text { fmt.Printf("%c\n", r) // выведет м, и и р }

Если бы обход шел по байтам, многобайтовая буква разбилась бы на части; здесь каждый круг дает целую руну.

Дана строка:

word := "мир"

Переберите word и выведите каждую букву на отдельной строке как символ.

Дана строка:

text := "ok"

Переберите text, отбросив индекс, и выведите обе буквы по одной на строку.

Скажите, зачем в паре с руной ставят _, если номер байта в задаче не используется.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить