Sobes.tech
Junior — Middle

É possível realizar uma operação de leitura de dados de um segmento que não foi previamente inicializado?

sobes.tech IA

Resposta da IA

No Go, os slices são estruturas que contêm um ponteiro para um array, um comprimento e uma capacidade. Se um slice não foi inicializado (ou seja, é igual a nil), uma tentativa de leitura dele levará a um pânico.

Por exemplo:

var s []int // slice nil
fmt.Println(s[0]) // pânico: erro em tempo de execução: índice fora do intervalo

Para ler com segurança de um slice, ele deve ser inicializado, por exemplo, usando make ou atribuindo um array existente:

s := make([]int, 3)
fmt.Println(s[0]) // 0, seguro

Portanto, não se pode ler de um slice não inicializado — isso causará um erro em tempo de execução.