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