Senior
O que o programa irá mostrar? 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 IA
Resposta da IA
O programa irá mostrar:
[0 1 2 3] [0 1 2 4]
Explicação:
- Inicialmente,
xé um slice vazio. - São adicionados os elementos 0, 1, 2 a
x. y := append(x, 3)adiciona 3 ao slicex. Se a capacidade do slice for suficiente,yexapontarão para o mesmo array subjacente, mas o comprimento deyserá maior.z := append(x, 4)também adiciona um elemento, mas comoyjá modificou o array, ao adicionar 4 az, um novo array é criado para evitar sobrescrever o anterior.
Assim, y contém [0 1 2 3], e z contém [0 1 2 4].
Exemplo para maior clareza:
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()
}