Sobes.tech
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