Sobes.tech
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 символ.