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.