Junior — Middle
Бул слайс ичинде кандай маалыматтар функция чакырганда аргумент катары өткөрүлөт?
sobes.tech AI
AIден жооп
Go тилинде, слайс — бул структура, ал үч талаа камтыйт: массивке көрсөткүч, узундук жана сыйымдуулук. Слайс функцияга өткөрүлгөндө, бул структура гана көчүрүлөт, бүт маалымат массиви эмес.
Мындайча айтканда, функцияны чакырганда, слайс баалуулук аркылуу өткөрүлөт, бирок гана метадата (көрсөткүч, узундук, сыйымдуулук) көчүрүлөт, массивдин элементтери эмес. Бул функциянын ичинде слайс ошол эле негизги массивге көрсөтүп турат, жана функциянын ичинде слайс элементтерин өзгөртүүлөр сыртта көрүнөт.
Мисал:
func modify(slice []int) {
slice[0] = 100 // биринчи элементти өзгөртүү
}
func main() {
s := []int{1, 2, 3}
modify(s)
fmt.Println(s) // [100 2 3] чыгарат
}
Ошентип, слайс функцияга өткөрүлгөндө, тек гана слайс структурасынын үч талаасы көчүрүлөт, ал эми массивдин маалыматтары жалпы болуп калат.