Estou fazendo requisições e tratando as reponses através de um Unmarshall
na seguinte Struct:
type Cidade struct {
Name string `json:"city"`
Confirmed int `json:"last_available_confirmed"`
Deaths int `json:"last_available_deaths"`
NewConfirmed int `json:"new_confirmed"`
NewDeaths int `json:"new_deaths"`
}
type APIResultados struct {
Count int `json:"count"`
Next string `json:"next"`
Previous string `json:"previous"`
Results ()Cidade `json:"results"`
}
Nas funções, eu tenho a atribuição da Struct e um método Unmarshall, com tudo certinho:
apiResults:= APIResultados{}
jsonErr := json.Unmarshal(body, &apiResults)
if jsonErr != nil {
log.Fatal(jsonErr)}
Eu tenho isso acima repetido em três funções com as partes essenciais idênticas (tratamento da response, tudo certinho), e elas são identicas porque apenas clonei a primeira em três e alterei alguns dados que não tem a ver com o tema.
O problema é: quando executo as três funções gêmeas, as duas primeiras funcionam, e a terceira retorna o erro:
panic: runtime error: index out of range (0) with length 0
O que não faz nenhum sentido, pois sequer declarei o tamanho da Struct na linha Results ()Cidade json:"results"
Eu já fiz alguns testes, e quando deixo as duas primeiras funções comentadas, a terceira funciona normalmente. Isso me faz crer que é algum “limite de uso de memória” em alguma coisa. Também tentei alterar o timeout das requests pra 120 segundos, mas creio que não seja isso.