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)) // брой символи (руни)