Sobes.tech
Junior — Middle

O que acontece se criar um slice com um valor nulo e que operações são permitidas com ele?

sobes.tech IA

Resposta da IA

No Go, uma fatia com valor nulo é uma fatia nil. Ela não aponta para nenhuma matriz e tem comprimento e capacidade iguais a zero.

Operações permitidas com tal fatia:

  • Obter comprimento e capacidade (len(slice) == 0, cap(slice) == 0)
  • Iterar sobre a fatia (o ciclo simplesmente não será executado)
  • Adicionar elementos usando append, o que criará uma nova fatia com memória alocada

Exemplo:

var s []int // fatia nil
fmt.Println(s == nil) // true
fmt.Println(len(s))   // 0
s = append(s, 1)      // agora s não é nil, contém um elemento

Não é possível acessar elementos por índice, pois a fatia está vazia e isso causará um pânico.