Sobes.tech
Senior

Meg tudjuk-e a fill függvényben az append segítségével hozzáadott egységet (elemet) elérni és kiírni az fmt.Println(v) sorában?

sobes.tech MI

Válasz az MI-től

Go nyelven, ha a fill függvényen belül a append segítségével hozzáadsz egy elemet egy szelethez, akkor ez az elem a fill hívása után is létezni fog a szeletben, ha a szeletet referencia szerint adtad át vagy vissza van adva.

Példa:

package main

import "fmt"

func fill(s []int) []int {
    s = append(s, 1) // elem hozzáadása
    return s
}

func main() {
    var v []int
    v = fill(v)
    fmt.Println(v) // itt [1] fog megjelenni
}

Ha a szeletet érték szerint adod át a fill-nek és nem adod vissza, a változtatások nem lesznek mentve. Ezért, hogy hozzáférj a hozzáadott elemhez az ötödik sorban, vagy vissza kell adni a szeletet a fill-ből, vagy pointert kell átadni a szelethez.

Így az ötödik sorban, fmt.Println(v), meg tudod jeleníteni a hozzáadott egységet, ha helyesen szervezed a szelet átadását és visszaadását.