Junior — Middle
As alterações feitas na lista enviada serão exibidas globalmente neste perfil?
sobes.tech IA
Resposta da IA
Em Go, se passar um slice para uma função e modificar os seus elementos, essas alterações serão visíveis fora da função, pois o slice contém um ponteiro para o array de dados.
No entanto, se dentro da função modificar o próprio slice (por exemplo, atribuindo-lhe um novo slice), isso não afetará o slice original fora da função.
Exemplo:
func modifySlice(s []int) {
s[0] = 100 // altera o elemento do slice original
s = append(s, 200) // altera a cópia local do slice, não afetando o original
}
func main() {
slice := []int{1, 2, 3}
modifySlice(slice)
fmt.Println(slice) // Vai imprimir [100 2 3]
}
Assim, as alterações nos elementos do slice refletem-se globalmente, mas a alteração do próprio slice não.