Что выведет код Middle Строки, байты и руны обновлено

Что выведет Go: руны, байты и преобразования

Вопрос

Что выведет программа? Go 1.23, в go.mod указано go 1.23.

package main

import "fmt"

func main() {
    s := "кот"
    r := []rune(s)
    b := []byte(s)
    r[0] = 'р'
    fmt.Println(len(r), len(b), string(r), s)
}

Попробуйте сами

Напишите, что выведет код: каждый вывод с новой строки.

Показать ответ и разбор

Коротко

Код выведет: 3 6 рот кот. []rune даёт 3 руны, []byte 6 байтов.

Что выведет

3 6 рот кот

Разбор

[]rune даёт 3 руны, []byte 6 байтов. Оба преобразования копируют данные, поэтому изменение r не трогает исходную строку, а string(r) собирает новую строку «рот».

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.