Sobes.tech
Middle+

fő csomag import "fmt" func subis(is []int) []int { return append(is, 5) } func main() { is := []int{1, 2, 3, 4} subis(is[2:3]) fmt.Println(is) }

sobes.tech MI

Válasz az MI-től

Ebben a kódban a következő történik:

is := []int{1, 2, 3, 4}
subis(is[2:3])
fmt.Println(is)

is[2:3] egy szelet, amely egyetlen elemet tartalmaz: 3.

A subis függvény egy is []int szeletet vesz be, és egy új szeletet ad vissza, amely a 5 szám hozzáadásával jön létre az eredeti szelethez append segítségével.

Azonban a main-ben a subis hívás eredményét nem írjuk újra, így az eredeti is szelet nem változik.

Az eredmény így néz ki:

[1 2 3 4]

Ha hozzárendelést végeznénk, például:

is = subis(is[2:3])

akkor az is [3 5] szeletté válna.

Tehát a jelenlegi kódban az is nem változik, mert a append eredményét nem mentjük el.