Назад к вопросам
Senior
3
Что такое строка в Go? Как узнать длину строки в символах и в байтах?
Компании, где спрашивали
Магнит Тех
Ответ от нейросети
sobes.tech AI
В Go строка (string) — это неизменяемая последовательность байт, обычно содержащая текст в кодировке UTF-8.
- Длина строки в байтах — это просто количество байт в срезе
[]byte, который лежит в основе строки. - Длина строки в символах (рунах) — количество Unicode-символов, которые могут занимать разное число байт.
Пример:
package main
import (
"fmt"
"unicode/utf8"
)
func main() {
s := "Привет"
fmt.Println("Длина в байтах:", len(s))
fmt.Println("Длина в символах:", utf8.RuneCountInString(s))
}
Вывод будет примерно:
Длина в байтах: 12
Длина в символах: 6
Потому что каждый русский символ в UTF-8 занимает 2 байта.