Ako sa pracuje s reťazcami v jazyku Go?
sobes.tech AI
Odpoveď od AI
Riadky v jazyku Go sú nemenné sekvencie bajtov. Môžu predstavovať ako text UTF-8, tak aj ľubovoľné binárne dáta.
Hlavné spôsoby práce:
-
Vyhlásenie a inicializácia:
var s1 string // Prázdny reťazec s2 := "ahoj" // Inicializácia literálom reťazca s3 := `viacriadkový reťazec` // Surový literál reťazca -
Dĺžka reťazca:
len(s2) // Dĺžka v bajtoch. Pre "ahoj" to bude 4. -
Prístup k bajtom:
b := s2[0] // Získanie bajtu na indexe. Vráti 'a' (v UTF-8).Priamy prístup k bajtom nezaručuje získanie UTF-8 znaku.
-
Prístup k rúnam (UTF-8 znakom): Riadky je možné iterovať po rúnach:
for index, runeValue := range s2 { fmt.Printf("Index: %d, Rúna: %c\n", index, runeValue) }Dĺžka v rúnach:
utf8.RuneCountInString(s2) // Dĺžka v rúnach. Pre "ahoj" to bude 4. -
Konkatenácia reťazcov:
str1 := "hello" str2 := " world" result := str1 + str2 // Konkatenácia operátorom +Pre efektívnu konkatenáciu veľkého počtu reťazcov použite
strings.Builder.var sb strings.Builder sb.WriteString("hello") sb.WriteString(" ") sb.WriteString("world") result := sb.String() // Získanie výsledného reťazca -
Prevod medzi reťazcami a rezmi bajtov/rún:
byteslice := []byte(s2) // Reťazec na rez bajtov rs := []rune(s2) // Reťazec na rez rún backToString := string(byteslice) // Rez bajtov na reťazec backToString = string(rs) // Rez rún na reťazec -
Modul
strings: Poskytuje množstvo užitočných funkcií:Contains,HasPrefix,HasSuffixIndex,LastIndexReplace,ToUpper,ToLower,Trim,TrimSpaceSplit,Join
-
Modul
strconv: Na prevod reťazcov na iné dátové typy (čísla, boolean) a späť.i, err := strconv.Atoi("123") // Reťazec na int s := strconv.Itoa(456) // int na reťazec -
Nemennosť: Akékoľvek operácie, ktoré sa javia ako zmena reťazca (napríklad konkatenácia), v skutočnosti vytvárajú nový reťazec. Je dôležité to brať do úvahy pre výkon pri častých zmenách. V takých prípadoch je lepšie použiť
[]bytealebostrings.Builder.