Junior — Middle
Какво представлява резултатът от изпълнението на оператора [] за типа данни низ?
sobes.tech AI
Отговор от AI
В Go операторът [] за типа данни низ се използва за получаване на срез от байтове на низа или отделен байт по индекс. Низът в Go е неизменяема последователност от байтове (UTF-8). При достъп до str[i], се връща байт от тип byte (псевдоним за uint8), а не символ в обичайния смисъл, тъй като Unicode символите могат да заемат няколко байта.
Пример:
s := "Привет"
fmt.Println(s[0]) // Ще изведе байта, съответстващ на първата част от символа 'П'
fmt.Println(string(s[0])) // Ще изведе некоректен символ, тъй като това не е пълен UTF-8 символ
// За получаване на символи (руни) трябва да преобразуваме низа в срез от руни:
r := []rune(s)
fmt.Println(string(r[0])) // Ще изведе 'П'
Следователно, операторът [] за низове връща байт по индекс, а не Unicode символ.