Senior
// Pregunta 4. ¿Qué mostrará en la pantalla package main 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
Respuesta de la IA
En este código se crea una rebanada is con los elementos [1, 2, 3, 4]. Luego se llama a la función subis con el argumento is[2:3], que es un rebanado que contiene solo el elemento 3.
La función subis devuelve una nueva rebanada, obtenida añadiendo el elemento 5 a la rebanada pasada. Sin embargo, el resultado de la llamada a subis no se guarda en ningún lugar, por lo que la rebanada original is no cambia.
La salida del programa será:
[1 2 3 4]
Explicación:
- Las rebanadas en Go son estructuras que contienen un puntero a un array, una longitud y una capacidad.
is[2:3]crea una nueva rebanada de longitud 1, que apunta al elemento3en el array.appendpuede modificar el array original si hay capacidad libre, pero como el resultado no se asigna, los cambios no se guardan.- La rebanada original
ispermanece sin cambios.