Junior — Middle
Как се реализират низовете и как са свързани с руни в езика Go?
sobes.tech AI
Отговор от AI
В езика Go низовете са представени чрез типа string, който е неизменяема последователност от байтове, обикновено кодирана в UTF-8. Това означава, че низът е сегмент от байтове, а не символи.
Руните (rune) са тип, който представлява Unicode кодова точка (int32). За работа с Unicode символи в низ, той се преобразува в последователност от руни, което позволява правилна обработка на много байтови символи.
Пример:
s := "Привет"
for i, r := range s {
fmt.Printf("%d: %c\n", i, r) // i — индекс на байта, r — руна (символ)
}
runes := []rune(s) // преобразуване на низа в последователност от руни
fmt.Println(runes[0]) // първият символ като руна
Така, низовете в Go са последователности от байтове, а руни са отделни Unicode символи, което позволява коректна работа с многоезични текстове.