Выбор ответа Junior Строки, байты и руны обновлено
Индексы в range по строке
Вопрос
Какие значения i напечатает цикл?
for i := range "жab" {
fmt.Print(i, " ")
}
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: 0 2 3. range по строке декодирует UTF-8 и выдаёт байтовый индекс начала каждой руны.
Варианты ответа
0 1 20 1 2 30 2 3правильный ответ1 2 3
Разбор
range по строке декодирует UTF-8 и выдаёт байтовый индекс начала каждой руны. «ж» занимает 2 байта (индексы 0-1), «a» и «b» по одному: 2 и 3. Итераций 3, по числу рун, а не 4 по числу байтов. Индексы с нуля.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.
Ещё по теме «Строки, байты и руны»
- Байты и символы в строке Go
- Разворот строки с кириллицей на Go
- Сжатие RLE для строк UTF-8 на Go
- Палиндром с кириллицей и знаками на Go
- Перенос текста по ширине в символах на Go
- Что выведет Go: len и range по строке с кириллицей
- Что выведет Go: руны, байты и преобразования
- Что выведет Go: сравнение и срезы строк