Sobes.tech
Junior

Ką reiškia duomenų tipas string Golang kalboje?

sobes.tech AI

Atsakymas iš AI

Golang'e string yra nekintanti baitų seka.

Pagrindinės savybės:

  • Nekintamumas: Po to, kai sukuriama eilutė, jos negalima keisti. Bet kokia operacija, kuri keičia eilutę, iš tikrųjų sukuria naują eilutę.
  • Atvaizdavimas: Eilutė turi baitų seką. Pagal numatytuosius nustatymus, Golang mano, kad šie baitai atvaizduoja UTF-8 koduotą tekstą.
  • Ilgis: Eilutės ilgis (len(s)) grąžina baitų skaičių eilutėje, o ne rune (simbolių) skaičių.
  • Indeksavimas: Prieiga prie eilutės elementų per indeksą (s[i]) grąžina tą indeksą esantį baitą.
  • Runos: Darbui su simboliais (runomis), naudojama iteracija per eilutę su ciklu for range, kuris dekoduoja UTF-8 ir teikia runas bei jų indeksus.

Pavyzdys:

// Eilutės inicializavimas
s := "Привет, мир!" // 23 baitai, 12 runų

// Eilutės ilgis (baitais)
byteLength := len(s) // 23

// Prieiga prie baito pagal indeksą
firstByte := s[0] // firstByte = 208 (baitas 'П' UTF-8)

// Iteracija per runas
runeCount := 0
for index, runeValue := range s {
	// index - runos pradžios indeksas (baitais)
	// runeValue - dekoduota runa
	runeCount++
}
// runeCount = 12