Sobes.tech
Back to questions
Junior — Middle
91

Объясните концепцию типа строк в языке Go и его основные особенности.

Companies where asked
Miatel

Answer from AI

sobes.tech AI

В языке Go тип строк (string) представляет собой неизменяемую последовательность байтов, обычно используемых для хранения текста в кодировке UTF-8.

Основные особенности строк в Go:

  • Неизменяемость: После создания строка не может быть изменена. Любые операции, изменяющие строку, создают новую.
  • UTF-8 кодировка: Строки хранятся в UTF-8, что позволяет работать с многоязычным текстом.
  • Доступ по байтам: Индексация строки возвращает байт, а не символ (руну). Для работы с символами используют тип rune.
  • Поддержка срезов: Можно получать подстроки с помощью срезов, например s[0:5].

Пример работы со строками и рунами:

s := "Привет"
fmt.Println(len(s)) // количество байт
for i, r := range s {
    fmt.Printf("%d: %c\n", i, r) // вывод индекса байта и символа
}

Таким образом, строки в Go — это удобный и эффективный способ работы с текстом, но требуют понимания разницы между байтами и символами.