Как определить длину строки в Go?

Junior
1.6k просмотров
AFK Offer AI

len(s) возвращает количество байт, не символов. Для Unicode-строк это разные вещи: len("привет") = 12 (по 2 байта на кириллицу в UTF-8).

Количество символов (рун): utf8.RuneCountInString(s) или len([]rune(s)). Для итерации по символам используй range — он автоматически декодирует руны:

for i, r := range "привет" {
    fmt.Printf("%d: %c\n", i, r)
}

range возвращает байтовый индекс и руну.

Следующий вопрос

Как обрабатывать ошибки в горутинах?