Sobes.tech
Senior

Go'da bir dize nedir? Yapısı ve özellikleri nelerdir?

sobes.tech yapay zeka

AI'dan gelen yanıt

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

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

  • Неизменяемость: после создания строку нельзя изменить. Любые операции, изменяющие содержимое, создают новую строку.
  • UTF-8: строки хранят байты в UTF-8, что позволяет работать с Unicode символами.
  • Доступ по байтам: индексирование строки возвращает байт, а не символ (руну). Для работы с символами нужно использовать пакет unicode/utf8 или преобразовывать строку в срез рун.

Пример структуры строки (упрощённо):

// string в Go примерно так:
type stringStruct struct {
    ptr *byte
    len int
}

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

s := "Привет"
fmt.Println(len(s)) // количество байт
runes := []rune(s)
fmt.Println(len(runes)) // количество символов (рун)