Middle+
Tarea: ¿Qué mostrará el código? ```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 AI
Respuesta de la IA
Código:
package main
import "fmt"
func main() {
a := []int{1, 2, 3, 4, 5}
b := a[:2] // b hace referencia a los primeros dos elementos de a: [1, 2]
b = append(b, 100) // añadimos 100 a la rebanada b
fmt.Println(a, b)
}
Análisis:
- Inicialmente,
a= [1, 2, 3, 4, 5] b := a[:2]— la rebanadabcontiene [1, 2], y su capacidad es 5 (desde 0 hasta el final dea)append(b, 100)añade el elemento 100 a la rebanadab. Como la capacidad debpermite expandirse sin asignar memoria nueva, el elemento 100 se escribe ena[2], modificando el array originala.
Después de append:
ase convierte en [1, 2, 100, 4, 5]bse convierte en [1, 2, 100]
Salida:
[1 2 100 4 5] [1 2 100]
Es decir, el elemento a[2] cambió de 3 a 100, ya que b y a comparten un array subyacente.