Назад к вопросам
Junior — Middle
75
Какое значение возвращается методом length при вызове у строки?
Ответ от нейросети
sobes.tech AI
В Go метод len при вызове у строки возвращает количество байт в строке, а не количество символов. Это связано с тем, что строки в Go — это последовательности байт в кодировке UTF-8. Если строка содержит только ASCII символы, то количество байт совпадает с количеством символов. Но если есть многоязычные символы, каждый из них может занимать несколько байт.
Пример:
package main
import (
"fmt"
)
func main() {
s := "Привет"
fmt.Println(len(s)) // Выведет количество байт, например 12
}
Для подсчёта количества символов (рунов) нужно использовать функцию utf8.RuneCountInString из пакета unicode/utf8.