Junior — Middle
¿Se mostrarán globalmente en este perfil los cambios realizados en la lista enviada?
sobes.tech AI
Respuesta de la IA
En Go, si pasas un slice a una función y modificas sus elementos, estos cambios serán visibles fuera de la función, ya que el slice contiene un puntero a los datos del array.
Sin embargo, si dentro de la función cambias el propio slice (por ejemplo, asignándole un nuevo slice), esto no afectará al slice original fuera de la función.
Ejemplo:
func modifySlice(s []int) {
s[0] = 100 // cambiará el elemento del slice original
s = append(s, 200) // cambiará la copia local del slice, no afectando al externo
}
func main() {
slice := []int{1, 2, 3}
modifySlice(slice)
fmt.Println(slice) // Imprimirá [100 2 3]
}
Por lo tanto, los cambios en los elementos del slice se reflejan globalmente, pero cambiar el propio slice no.