Middle+
Zadatak: Šta će prikazati kod? ```go package main import "fmt" func main() { a := []int{1, 2, 3, 4, 5} b := a[:2] b = append(b, 100) fmt.Println(a, b) } ```
sobes.tech АИ
Одговор од АИ
Код:
package main
import "fmt"
func main() {
a := []int{1, 2, 3, 4, 5}
b := a[:2] // b se odnosi na prva dva elementa od a: [1, 2]
b = append(b, 100) // dodajemo 100 u rezanac b
fmt.Println(a, b)
}
Analiza:
- Početno,
a= [1, 2, 3, 4, 5] b := a[:2]— rezanacbsadrži [1, 2], a njegova kapacitet je 5 (od 0 do krajaa)append(b, 100)dodaje element 100 u rezanacb. Pošto kapacitetbomogućava proširenje bez alokacije nove memorije, element 100 se zapisuje ua[2], čime se menja originalni niza.
Nakon append:
apostaje [1, 2, 100, 4, 5]bpostaje [1, 2, 100]
Izlaz:
[1 2 100 4 5] [1 2 100]
Drugim rečima, element a[2] se promenio iz 3 u 100, jer b i a dele istu podložnu niz.