Junior — Middle
Göndərilən siyahıya edilən dəyişikliklər bu profilə qlobal şəkildə göstəriləcəkmi?
sobes.tech Süni İntellekt
AI-dan cavab
Go dilində, əgər siz bir dilim (slice) funksiyaya ötürsəniz və onun elementlərini dəyişdirsəniz, bu dəyişikliklər funksiyadan kənarda da görünəcək, çünki dilim məlumatlar massivinə göstərici ehtiva edir.
Ancaq, funksiyada dilimi özü dəyişdirsəniz (məsələn, ona yeni dilim təyin etsəniz), bu, xarici orijinal dilimi təsir etməyəcək.
Misal:
func modifySlice(s []int) {
s[0] = 100 // orijinal dilimin elementini dəyişəcək
s = append(s, 200) // lokal nüsxəni dəyişəcək, xarici təsir etməyəcək
}
func main() {
slice := []int{1, 2, 3}
modifySlice(slice)
fmt.Println(slice) // [100 2 3] çap edəcək
}
Bu səbəbdən, dilim elementlərindəki dəyişikliklər qlobal şəkildə əks olunur, amma dilimin özü dəyişdirilməz.