Kuidas saate Go keeles stringidega töötada?
sobes.tech AI
Vastus AI-lt
Go keeles stringid on muutumatud baitide jadas.
Peamised viisid stringidega töötamiseks:
-
Loomine:
// Stringi literaal s1 := "Hello, Go!" // Baitide massiivist byteArray := []byte{'H', 'e', 'l', 'l', 'o'} s2 := string(byteArray) -
Kokku panemine:
s3 := "World" result := s1 + " " + s3 // Kasutades + operaatoritSuurema kokkuliitmise puhul on tõhusam kasutada
strings.Builder:import "strings" var sb strings.Builder sb.WriteString("Hello") sb.WriteString(", ") sb.WriteString("World!") result2 := sb.String() -
Pikkus:
- baitides:
byteLength := len(s1) - märkides (runes):
runeLength := utf8.RuneCountInString(s1) // nõuab importi "unicode/utf8"
- baitides:
-
Juurdepääs märkidele (runes) ja iteratsioon: Go stringid koosnevad baitidest, kuid
rangeabil dekodeeritakse need rune-ideks (Unicode koodipunktideks).import "fmt" for index, runeValue := range s1 { fmt.Printf("Indeks: %d, Ruun: %c, Tüüp: %T\n", index, runeValue, runeValue) }Otse juurdepääs indeksiga tagastab baitide väärtuse, mitte rune:
b := s1[0] // Tagastab bait 'H' -
Transformatsioon:
- Baitide massiiviks:
byteSlice := []byte(s1) - Rune-massiiviks:
runeSlice := []rune(s1)
- Baitide massiiviks:
-
stringspaket: Pakub palju kasulikke funktsioone stringidega töötamiseks:strings.Contains(s, substr): Kontrollib, kas alamstring on olemas.strings.HasPrefix(s, prefix): Kontrollib, kas string algab määratud prefiksiga.strings.HasSuffix(s, suffix): Kontrollib, kas string lõpeb määratud sufiksiga.strings.Index(s, substr): Otsib esimese esinemise alamstringis.strings.ReplaceAll(s, old, new): Asendab kõik esinemised.strings.Split(s, sep): Jagab stringi separatoriga.strings.Join(a []string, sep string): Ühendab stringide massiivi separatoriga.strings.ToLower(s): Muudab väikesteks tähtedeks.strings.ToUpper(s): Muudab suureks tähtedeks.strings.TrimSpace(s): Eemaldab tühikud algusest ja lõpust.
-
fmtpaket: Formaatkirjutise ja lugemise jaoks. -
strconvpaket: Stringide konverteerimine arvutüüpideks ja vastupidi:import "strconv" i, err := strconv.Atoi("123") // String arvuks s := strconv.Itoa(i) // Arv stringiks
Stringide muutmatus on oluline ning tähendab, et iga operatsioon, mis näib stringi muutmisena (näiteks ühendamine või Replace), tegelikult loob uue stringi.