Sobes.tech
Senior

Čo je to reťazec v Go? Aká je jeho štruktúra a vlastnosti?

sobes.tech AI

Odpoveď od AI

V jazyku Go je reťazec (string) nemenná sekvencia bajtov, zvyčajne predstavujúca text v kódovaní UTF-8. Štrukturálne je reťazec implementovaný ako štruktúra so dvoma poľami: ukazovateľ na pole bajtov a dĺžka.

Vlastnosti reťazcov v Go:

  • Nemennosť: po vytvorení sa reťazec nedá zmeniť. Akákoľvek operácia, ktorá mení jeho obsah, vytvorí nový reťazec.
  • UTF-8: reťazce ukladajú bajty v UTF-8, čo umožňuje prácu s Unicode znakmi.
  • Prístup po bajtoch: indexovanie reťazca vracia bajt, nie znak (rune). Na prácu so znakmi je potrebné použiť balík unicode/utf8 alebo konvertovať reťazec na rez rune.

Príklad štruktúry reťazca (zjednodušené):

// reťazec v Go približne takto:
type stringStruct struct {
    ptr *byte
    len int
}

Príklad práce s reťazcom:

s := "Привет"
fmt.Println(len(s)) // počet bajtov
runes := []rune(s)
fmt.Println(len(runes)) // počet znakov (rune)