Middle
s[left] += 1 əməliyyatında sətirə nə olur? Bu, indeksə görə dəyişiklikmi və ya birləşdirməmi?
sobes.tech Süni İntellekt
AI-dan cavab
Go dilində sətirlər dəyişməzdir (immutable). s[left] += 1 əməliyyatı sətirlər üzərində birbaşa tətbiq edilə bilməz, çünki indeksə görə simvolu dəyişdirmək mümkün deyil.
Əgər s sətirdirsə, s[left] += 1 cəhdində tərtib xətası yaranacaq.
Əgər s bayt dilimi ([]byte) isə, s[left] += 1 əməliyyatı indeksdəki baytın dəyərini 1 artıracaq. Bu, birləşdirmə deyil, konkret elementin dəyişdirilməsidir.
Nümunə:
s := []byte("abc")
s[1] += 1 // 'b' (98) 'c' (99) olacaq
fmt.Println(string(s)) // "acc" çap edəcək
Qısaca, sətirlər üçün əməliyyat mümkün deyil, bayt dilimləri üçün indekslə dəyişiklik etmək mümkündür.