Hogyan lehet a Go nyelvben szövegekkel dolgozni?
sobes.tech MI
Válasz az MI-től
A Go nyelvben a sztringek változatlan byte-sorozatok. Ezek reprezentálhatnak UTF-8 szöveget vagy tetszőleges bináris adatokat.
Fő módszerek:
-
Bejelentés és inicializálás:
var s1 string // Üres sztring s2 := "szia" // Sztring literálból való inicializálás s3 := `többsoros szöveg` // Nyers sztring literál -
A sztring hossza:
len(s2) // Hossz byte-okban. A "szia" esetén 4. -
Hozzáférés bájtokhoz:
b := s2[0] // A bájt lekérése index alapján. Visszaadja 's' (UTF-8-ben).A közvetlen hozzáférés bájtokhoz nem garantálja a teljes UTF-8 karaktert.
-
Hozzáférés runákhoz (UTF-8 karakterekhez): A sztringeket runák szerint lehet iterálni:
for index, runeValue := range s2 { fmt.Printf("Index: %d, Rúna: %c\n", index, runeValue) }Hossz runákban:
utf8.RuneCountInString(s2) // Hossz runákban. A "szia" esetén 4. -
Sztringek összefűzése:
str1 := "hello" str2 := " világ" result := str1 + str2 // Összefűzés + operátorralNagy számú sztring hatékony összefűzéséhez használja a
strings.Builder-t.var sb strings.Builder sb.WriteString("hello") sb.WriteString(" ") sb.WriteString("világ") result := sb.String() // Az eredmény sztring -
Átalakítás sztringek és bájt/runa szeletek között:
byteslice := []byte(s2) // Sztring bájtszeletté alakítása rs := []rune(s2) // Sztring runák szeletté alakítása backToString := string(byteslice) // Bájt szelet sztringgé backToString = string(rs) // Runa szelet sztringgé -
stringscsomag: Számos hasznos funkciót tartalmaz:Contains,HasPrefix,HasSuffixIndex,LastIndexReplace,ToUpper,ToLower,Trim,TrimSpaceSplit,Join
-
strconvcsomag: Sztringek más típusokra (számokra, logikai értékekre) való átalakítása és fordítva.i, err := strconv.Atoi("123") // Sztring int-re s := strconv.Itoa(456) // Int sztringgé -
Változtathatatlanság: Bármilyen művelet, amely úgy tűnik, módosít egy sztringet (pl. összefűzés), valójában új sztringet hoz létre. Ez fontos a teljesítmény szempontjából gyakori módosítások esetén. Ilyen esetekben jobb a
[]bytevagy astrings.Builderhasználata.