Kā strādāt ar virkni Go valodā?
sobes.tech AI
Atbilde no AI
Go valodā rindas ir nemainīgas secības baitu. Tās var attēlot gan UTF-8 tekstu, gan jebkādiem bināriem datiem.
Galvenie darba veidi:
-
Deklarācija un inicializācija:
var s1 string // Tukša rinda s2 := "sveiki" // Inicializācija ar literālu s3 := `daudzrindaina rinda` // Neapstrādāts literāls -
Rindas garums:
len(s2) // baitu skaits. "sveiki" gadījumā tas būs 6. -
Piekļuve baitiem:
b := s2[0] // Baita iegūšana pēc indeksa. Atgriezīs 's' (UTF-8).)Tieša piekļuve baitiem nenodrošina simbolu UTF-8.
-
Piekļuve rúnām (UTF-8 simboliem): Rindas var iterēt pa rúnām:
for index, runeValue := range s2 { fmt.Printf("Indekss: %d, Runa: %c\n", index, runeValue) }Rindu garums rúnās:
utf8.RuneCountInString(s2) // Garums rúnās. "sveiki" gadījumā tas būs 6. -
Rindu savienošanas:
str1 := "sveiki" str2 := " pasaulē" result := str1 + str2 // Savieno ar operatoru +Efektīvai lielu rindu savienošanai izmantojiet
strings.Builder:var sb strings.Builder sb.WriteString("sveiki") sb.WriteString(" ") sb.WriteString("pasaulē") result := sb.String() // Rezultāta rinda -
Rindu un baitu/rúnu griezumu pārveidošana:
byteslice := []byte(s2) // Rinda uz baitu griezumu rs := []rune(s2) // Rinda uz rúnu griezumu backToString := string(byteslice) // Baitu griezums uz rindu backToString = string(rs) // Rúnu griezums uz rindu -
stringsmodulis: Nodrošina daudz noderīgu funkciju:Contains,HasPrefix,HasSuffixIndex,LastIndexReplace,ToUpper,ToLower,Trim,TrimSpaceSplit,Join
-
strconvmodulis: Rindu pārveidošana uz citām datu tipiem (skaitļiem, loģiskām vērtībām) un atpakaļ.i, err := strconv.Atoi("123") // Rinda uz int s := strconv.Itoa(456) // Int uz rindu -
Nemainīgums: Jebkuras operācijas, kas izskatās kā rindas maiņa (piemēram, savienošana), patiesībā rada jaunu rindu. Tas ir svarīgi ņemt vērā veiktspēnes nolūkos biežu izmaiņu gadījumā. Šādos gadījumos labāk izmantot
[]bytevaistrings.Builder.