Senior
Šta će program prikazati? func a() { x := []int{} x = append(x, 0) x = append(x, 1) x = append(x, 2) y := append(x, 3) z := append(x, 4) fmt.Println(y, z) } func main() { a() }
sobes.tech АИ
Одговор од АИ
Program će prikazati:
[0 1 2 3] [0 1 2 4]
Objašnjenje:
- U početku je
xprazan rez. - Dodaju se elementi 0, 1, 2 u
x. y := append(x, 3)dodaje 3 u rezx. Ako je kapacitet rezova dovoljan,yixće pokazivati na isti podrazumevani niz, ali dužinayće biti veća.z := append(x, 4)takođe dodaje element, ali pošto jeyveć izmenio niz, pri dodavanju 4 uzse kreira novi niz da bi se izbeglo prepisivanje.
Tako, y sadrži [0 1 2 3], a z [0 1 2 4].
Primer za bolje razumevanje:
func a() {
x := []int{}
x = append(x, 0)
x = append(x, 1)
x = append(x, 2)
y := append(x, 3)
z := append(x, 4)
fmt.Println(y, z)
}
func main() {
a()
}