Sobes.tech
Middle

Kas notiek ar tekstu operācijā s[left] += 1? Vai tas ir mainījums pēc indeksa vai savienošana?

sobes.tech AI

Atbilde no AI

Go valodā virknes ir nemainīgas (immutable). Operācija s[left] += 1 nav tieši piemērojama virknes, jo nevar mainīt rakstzīmi pēc indeksa.

Ja s ir virkne, mēģinājums s[left] += 1 radīs kompilācijas kļūdu.

Ja s ir baitu sērija ([]byte), tad operācija s[left] += 1 mainīs baitu vērtību indeksā left, palielinot to par 1. Tas nav saistīšana, bet konkrēta elementa maiņa sērijā.

Piemērs:

s := []byte("abc")
s[1] += 1 // 'b' (98) kļūst par 'c' (99)
fmt.Println(string(s)) // izvadīs "acc"

Kopsavilkums: virknes operācija ir neiespējama, baitu sērijām — indeksā maiņa ir iespējama.