Junior — Middle
Como inserir um novo elemento na parte central de um array dinâmico (layer)?
sobes.tech IA
Resposta da IA
Em Go, para inserir um novo elemento no meio de um slice, é necessário criar um novo slice combinando as partes antes e depois da posição de inserção, bem como o elemento a inserir. Por exemplo, para inserir o elemento x na posição i do slice s:
s = append(s[:i], append([]T{x}, s[i:]...)...)
Aqui, T é o tipo dos elementos do slice. Este método funciona assim:
- Pegamos um segmento desde o início até à posição
i(sem incluiri):s[:i] - Criamos um slice com um único elemento
x:[]T{x} - Pegamos um segmento desde a posição
iaté ao final:s[i:] - O
appendinterno combina o elemento a inserir e o rabo do slice - O
appendexterno adiciona tudo ao início
Exemplo:
s := []int{1, 2, 4, 5}
x := 3
i := 2
s = append(s[:i], append([]int{x}, s[i:]...)...)
// s agora é: [1 2 3 4 5]
Este é o método padrão para inserir no meio de um slice em Go.