Senior
O que é um slice e como difere de um array?
sobes.tech IA
Resposta da IA
Em Go, um array é uma estrutura de tamanho fixo que contém elementos de um mesmo tipo. O tamanho do array é definido na declaração e não pode ser alterado durante a execução do programa.
Slice é uma fatia dinâmica e ajustável do array. É uma estrutura que contém um ponteiro para o array, o comprimento e a capacidade. Os slices permitem trabalhar com subconjuntos do array e expandir-se automaticamente quando necessário.
Principais diferenças:
- Tamanho: o array tem um tamanho fixo, o slice é dinâmico.
- Passagem: arrays são passados por valor (copiados), slices por referência (ponteiro para o array).
- Flexibilidade: o slice pode ser expandido usando a função
append, o array não.
Exemplo:
var arr [3]int = [3]int{1, 2, 3} // array de tamanho fixo
var s []int = arr[0:2] // slice referindo-se a uma parte do array
s = append(s, 4) // o slice é expandido, e se necessário, um novo array é criado