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