Sobes.tech
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 символи, което позволява коректна работа с многоезични текстове.