Junior — Middle
Proqramlaşdırma dilində dilimi funksiyaya necə ötürmək olar?
sobes.tech Süni İntellekt
AI-dan cavab
Go dilində, dilim (slice) funksiyaya dəyər kimi ötürülür, lakin dilim bir massivə işarə edən göstərici, uzunluğu və tutumu ilə birlikdədir. Bu, dilim funksiyaya ötürüləndə, dilimin strukturu kopyalanır, lakin ona işarə edən massiv məlumatları kopyalanmır.
Nəticədə, funksiyada dilim elementlərində edilən dəyişikliklər orijinal massivə təsir edir, lakin dilimin özü (məsələn, yeni dilim təyin etmək) xarici dilimi təsir etmir.
Misal:
package main
import "fmt"
func modifySlice(s []int) {
s[0] = 100 // orijinal massiv elementini dəyişəcək
s = append(s, 200) // lokal dilimi dəyişəcək, xarici dəyişməz
}
func main() {
s := []int{1, 2, 3}
modifySlice(s)
fmt.Println(s) // Çıxış: [100 2 3]
}
Beləliklə, dilim dəyər kimi ötürülür, lakin daxili göstərici sayəsində, elementlərdəki dəyişikliklər funksiyadan kənarda da görünür.