Назад к вопросам
Junior — Middle
84
Что представляет собой результат выполнения оператора [] для строкового типа данных?
Ответ от нейросети
sobes.tech AI
В Go оператор [] для строкового типа данных используется для получения среза байтов строки или отдельного байта по индексу. Строка в Go — это неизменяемая последовательность байтов (UTF-8). При обращении к str[i] возвращается байт типа byte (alias для uint8), а не символ в привычном смысле, так как символы Unicode могут занимать несколько байтов.
Пример:
s := "Привет"
fmt.Println(s[0]) // Выведет байт, соответствующий первой части символа 'П'
fmt.Println(string(s[0])) // Выведет некорректный символ, так как это не полный UTF-8 символ
// Для получения символов (рунов) нужно преобразовать строку в срез рун:
r := []rune(s)
fmt.Println(string(r[0])) // Выведет 'П'
Таким образом, оператор [] для строки возвращает байт по индексу, а не символ Unicode.