Sobes.tech
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.