Sobes.tech
Назад к вопросам
Junior — Middle
83

Какой результат возвращает встроенная функция len при вызове на строке?

Ответ от нейросети

sobes.tech AI

В Go встроенная функция len при вызове на строке возвращает количество байт в этой строке, а не количество символов (рун).

Это связано с тем, что строки в Go — это последовательности байт в кодировке UTF-8. Если строка содержит только ASCII-символы, то количество байт равно количеству символов. Но если в строке есть многобайтовые символы (например, кириллица, эмодзи), то len вернет сумму байт, а не количество символов.

Пример:

s := "Привет"
fmt.Println(len(s)) // Выведет количество байт, например 12

runes := []rune(s)
fmt.Println(len(runes)) // Выведет количество символов, например 6

Если нужно получить количество символов (рун), следует преобразовать строку в срез рун и взять его длину.