Sobes.tech
Middle+

главни пакет увези "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 АИ

Одговор од АИ

U ovom kodu se dešava sledeće:

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

is[2:3] je odsečak koji sadrži jedan element: 3.

Funkcija subis uzima odsečak is []int i vraća novi odsečak koji se dobija dodavanjem broja 5 na originalni odsečak pomoću append.

Međutim, u main, rezultat poziva subis se ne dodeljuje ponovo, tako da se originalni odsečak is ne menja.

Rezultat će biti:

[1 2 3 4]

Ako bismo uradili dodelu, na primer:

is = subis(is[2:3])

onda bi is postao odsečak [3 5].

Dakle, u trenutnom kodu, is se ne menja jer se rezultat append ne čuva.