Sobes.tech
Junior — Middle

Ar galima keisti masyvo, kuris perduotas kaip slice, turinį programos vykdymo metu?

sobes.tech AI

Atsakymas iš AI

Taip, masyvo, perduoto kaip slice, turinys gali būti keičiama programos vykdymo metu. Go kalboje slice yra struktūra, kuri turi nuorodą į masyvą, ilgį ir talpą. Slice elementų pakeitimai atsispindi pradiniame masyve, nes slice nurodo į jo duomenis.

Pavyzdys:

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) // Išves: [100 2 3]
}

Taigi, slice keitimas keičia ir pradinį masyvą.