Sobes.tech
Junior — Middle

შესაძლებელია თუ არა პროგრამის შესრულების დროს სლაისის სახით გადაცემული მასივის შიგთავსის შეცვლა?

sobes.tech AI

პასუხი AI-სგან

დიახ, მასივის შიგთავსი, რომელიც გადაეცემა სლაისის სახით, შეიძლება შეიცვალოს პროგრამის შესრულების დროს. Go-ში სლაისი არის სტრუქტურა, რომელიც შეიცავს მაჩვენებელს მასივზე, სიგრძეს და მოცულობას. სლაისის ელემენტების ცვლილებები აისახება ორიგინალურ მასივზე, რადგან სლაისი მიუთითებს მის მონაცემებზე.

მაგალითი:

package main
import "fmt"

func modifySlice(s []int) {
    s[0] = 100
}

func main() {
    arr := [3]int{1, 2, 3}
    slice := arr[:]
    modifySlice(slice)
    fmt.Println(arr) // გამოიტანს: [100 2 3]
}

ამიტომ, სლაისის ცვლილება ასევე იცვლის ორიგინალურ მასივს.