Junior
Kā darbojas virknes Go valodā?
sobes.tech AI
Atbilde no AI
Go virknēs ir nemaināmas baitu secības. Tās attēlo kā "baitu griezumu" ([]byte) ar garantētu nemaināmību.
Galvenās īpašības:
- Nemaināmība: Pēc virknes izveides tā nevar tikt mainīta. Jebkura darbība, kas izskatās kā virknes modifikācija, patiesībā rada jaunu virkni.
- Attēlojums: Go virknēs galvenokārt attēlo UTF-8 kodētu tekstu. Tomēr tās ir vienkārši baitu secības; interpretācija kā UTF-8 notiek, strādājot ar rūnām.
- Runas: Unicode simboli Go tiek attēloti ar
runetipu, kas irint32pseidonīms. Virknes pārlūkošana arrangeautomātiski dekodē UTF-8 un nodrošina rūnas un to sākotnējos indeksus baitos. - Garums: Funkcija
len(s)atgriež virknes baitu skaitu, nevis simbolu (rūnu) skaitu. Rūnu skaitam izmantojietutf8.RuneCountInString(s)vai pārlūkojiet virkni arrange. - Konkatenācija: Virknes apvieno ar operatoru
+. Tas rada jaunu virkni. Efektīvai lielu virkņu apvienošanai ieteicams izmantotstrings.Builder.
Piemēri:
// Virknes deklarēšana
str := "Hello, pasaule"
// Virknes garums (baitos)
byteLen := len(str) // 13 (H(1)e(1)l(1)l(1)o(1),(1) (1)p(3)a(3)s(3)a(3)u(3)l(3)i(3)k(3))
// Pārlūkošana ar rūnām
runeCount := 0
for index, runeValue := range str {
// index - rūnas sākuma indekss baitos
// runeValue - rūna
runeCount++
// fmt.Printf("Index: %d, Rune: %c (Value: %d)\n", index, runeValue, runeValue)
}
// runeCount - rūnu skaits (9)
// Pieejas pie baitiem pēc indeksa
// Uzmanību: tas ir bait, ne simbols!
// byteAtIndex := str[0] // 'H'
// byteAtIndex := str[7] // '世' simbols sākuma baitu
// Virkņu apvienošana
newStr := str + "!"
// Efektīvai apvienošanai izmantojiet `strings.Builder`
// import "strings"
var builder strings.Builder
builder.WriteString("Hello, ")
builder.WriteString("Pasaule")
efficientStr := builder.String() // "Hello, Pasaule"