Sobes.tech
Junior — Middle

Kas on võimalik muuta massiivi sisu, mis on edastatud kui slice, programmi käivitamise ajal?

sobes.tech AI

Vastus AI-lt

Jah, sisselõigu sisu, mis antakse massiivina, saab programmi käigus muuta. Go-s on sisselõik struktuur, mis sisaldab viidet massiivile, pikkust ja mahtu. Sisselõigu elementide muutused kajastuvad algses massiivis, kuna sisselõik viitab selle andmetele.

Näide:

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) // Väljund: [100 2 3]
}

Seega, sisselõigu muutmine muudab ka algset massiivi.