Junior
Kā jūs varat strādāt ar virkni Go valodā?
sobes.tech AI
Atbilde no AI
Go valodā virknes ir nemainīgas baitu secības.
Galvenie veidi, kā strādāt ar virkni:
-
Izveide:
// Virknes literals s1 := "Hello, Go!" // No baitu masīva byteArray := []byte{'H', 'e', 'l', 'l', 'o'} s2 := string(byteArray) -
Konkatenācija:
s3 := "World" result := s1 + " " + s3 // Izmantojot + operatoruLielam konkatenāciju skaitam ir efektīvāk izmantot
strings.Builder:import "strings" var sb strings.Builder sb.WriteString("Hello") sb.WriteString(", ") sb.WriteString("World!") result2 := sb.String() -
Garums:
- Baitos:
byteLength := len(s1) - Simbolos (rune):
runeLength := utf8.RuneCountInString(s1) // Prasa importēt "unicode/utf8"
- Baitos:
-
Piekļuve simboliem (rune) un iterācija: Go virknes sastāv no baitiem, bet ar
rangetie tiek dekodēti uz rune (Unicode kodu punktiem).import "fmt" for index, runeValue := range s1 { fmt.Printf("Indekss: %d, Runa: %c, Tips: %T\n", index, runeValue, runeValue) }Tieša pieeja pēc indeksa atgriež baitu, ne rune:
b := s1[0] // Atgriež baitu 'H' -
Pārveidošana:
- Uz baitu masīvu:
byteSlice := []byte(s1) - Uz rune masīvu:
runeSlice := []rune(s1)
- Uz baitu masīvu:
-
stringspakotne: Nodrošina daudz noderīgu funkciju darbam ar virkni:strings.Contains(s, substr): Pārbauda, vai ir podvirkne.strings.HasPrefix(s, prefix): Pārbauda, vai virkne sākas ar norādītu prefiksu.strings.HasSuffix(s, suffix): Pārbauda, vai virkne beidzas ar norādītu sufiksu.strings.Index(s, substr): Meklē pirmo parādīšanos podvirknē.strings.ReplaceAll(s, old, new): Aizstāj visas parādīšanās.strings.Split(s, sep): Sadalīt virkni pēc atdalītāja.strings.Join(a []string, sep string): Apvieno virkņu masīvu ar atdalītāju.strings.ToLower(s): Pārvērš mazajos burtos.strings.ToUpper(s): Pārvērš lielajos burtos.strings.TrimSpace(s): Noņem tukšos simbolus no sākuma un beigām.
-
fmtpakotne: Formāta izvadei un ievadei. -
strconvpakotne: Pārveido virknes uz skaitliskajiem tipiem un otrādi:import "strconv" i, err := strconv.Atoi("123") // Virkne uz int s := strconv.Itoa(i) // Int uz virkni
Nemainīgums virknes ir svarīgs, jo tas nozīmē, ka jebkura operācija, kas šķiet kā virknes modifikācija (piemēram, konkatenācija vai Replace), patiesībā rada jaunu virkni.