Sobes.tech
Middle+

hlavný balík 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 AI

Odpoveď od AI

V tomto kóde sa deje nasledovné:

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

is[2:3] je rez obsahujúci jeden prvok: 3.

Funkcia subis prijíma rez is []int a vracia nový rez, ktorý vznikne pridaním čísla 5 k pôvodnému rezu pomocou append.

Avšak v main nie je výsledok volania subis priradený späť, takže pôvodný rez is sa nezmení.

Výstup bude:

[1 2 3 4]

Ak by sme urobili priradenie, napríklad:

is = subis(is[2:3])

tak by sa is stal rezom [3 5].

Teda v aktuálnom kóde sa is nemení, pretože výsledok append sa neuloží.