Sobes.tech
Senior

Ришта дар Go чист? Сохтори он ва хусусиятҳои он чӣ гуна аст?

sobes.tech AI

Ҷавоб аз AI

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

Характеристики на низовете в Go:

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

Пример за структура на низ (опростен):

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

Пример за работа с низ:

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