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