Middle
Šta se dešava sa stringom u operaciji s[left] += 1? Da li je to promena po indeksu ili konkatenacija?
sobes.tech АИ
Одговор од АИ
U jeziku Go, nizovi su nepromenljivi (immutable). Operacija s[left] += 1 nije direktno primenjiva na nizove, jer ne može da se menja karakter po indeksu.
Ako je s string, pokušaj s[left] += 1 će izazvati grešku pri kompajliranju.
Ako je s slice bajtova ([]byte), tada će operacija s[left] += 1 promeniti vrednost bajta na indeksu left, povećavajući je za 1. Ovo nije konkatenacija, već promena određenog elementa slice-a.
Primer:
s := []byte("abc")
s[1] += 1 // 'b' (98) postaje 'c' (99)
fmt.Println(string(s)) // ispisuje "acc"
Ukratko, za stringove je operacija nemoguća, za slice-ove bajtova — promena po indeksu.