Junior
Какво представлява типът данни string в езика Golang?
sobes.tech AI
Отговор от AI
В Golang string е неизменяема последователност от байтове.
Ключови характеристики:
- Неизменяемост: След създаването си, низът не може да бъде променян. Всяка операция, която модифицира низа, всъщност създава нов низ.
- Представяне: Низът съдържа последователност от байтове. По подразбиране, Golang предполага, че тези байтове представляват текст, кодиран в UTF-8.
- Дължина: Дължината на низа (
len(s)) връща броя на байтовете в низа, а не броя на руни (символи). - Индексиране: Достъпът до елементите на низа чрез индекс (
s[i]) връща байта на този индекс. - Руни: За работа със символи (руни), се използва итерация върху низа с цикъл
for range, който декодира UTF-8 и предоставя руни и техните индекси.
Пример:
// Инициализация на низа
s := "Привет, мир!" // 23 байта, 12 руни
// Дължина на низа (в байтове)
byteLength := len(s) // 23
// Достъп до байт по индекс
firstByte := s[0] // firstByte = 208 (байт за 'П' в UTF-8)
// Итерация по руни
runeCount := 0
for index, runeValue := range s {
// index - началният индекс на руна в низа (в байтове)
// runeValue - декодираната руна
runeCount++
}
// runeCount = 12