Kuidas töötada stringidega Go keeles?
sobes.tech AI
Vastus AI-lt
Go keeles stringid on muutumatud baitide jadas. Nad võivad esitada nii UTF-8 teksti kui ka mis tahes binaarandmeid.
Põhitegevused:
-
Deklaratsioon ja initsialiseerimine:
var s1 string // Tühi string s2 := "tere" // Initsialiseerimine stringi literaaliga s3 := `mitme rida string` // Toores stringi literaal -
Stringi pikkus:
len(s2) // baitide arv. "tere" puhul on see 4. -
Juurdepääs baitidele:
b := s2[0] // baiti saamine indeksiga. Tagastab 't' (UTF-8).)Otse baitidele juurdepääs ei taga UTF-8 sümboli saamist.
-
Juurdepääs rünadele (UTF-8 sümbolitele): Stringe saab iteratsiooniga rünade kaupa:
for index, runeValue := range s2 { fmt.Printf("Indeks: %d, Ruun: %c\n", index, runeValue) }Stringi pikkus rünades:
utf8.RuneCountInString(s2) // Pikkus rünades. "tere" puhul on see 4. -
Stringide ühendamine:
str1 := "tere" str2 := " maailm" result := str1 + str2 // Ühendamine operaatoriga +Tõhusamaks ühendamiseks suure hulga stringide puhul kasutage
strings.Builder:var sb strings.Builder sb.WriteString("tere") sb.WriteString(" ") sb.WriteString("maailm") result := sb.String() // Tulemuse string -
Stringide ja baitide/rünade vahetus:
byteslice := []byte(s2) // String baitideks rs := []rune(s2) // String rünadeks backToString := string(byteslice) // baitide stringiks backToString = string(rs) // rünade stringiks -
stringsmoodul: Pakub palju kasulikke funktsioone:Contains,HasPrefix,HasSuffixIndex,LastIndexReplace,ToUpper,ToLower,Trim,TrimSpaceSplit,Join
-
strconvmoodul: Stringide teisendamine teisteks andmetüüpideks (arvud, booleanid) ja tagasi.i, err := strconv.Atoi("123") // String arvuks s := strconv.Itoa(456) // Arv stringiks -
Muutumatud: Kõik operatsioonid, mis näivad stringi muutmisena (näiteks ühendamine), loovad tegelikult uue stringi. See on oluline jõudluse jaoks sagedaste muudatuste korral. Sellistel juhtudel on parem kasutada
[]bytevõistrings.Builder.