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/utf8alebo 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)