Sobes.tech
Назад к вопросам
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.