Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Qual a função do "?" entre duas chaves de um map?

Tenho duvida em como se lê essa linha de código, por causa do operador "?" entre as duas chaves do map(["imageLinks"]?["thumbnail"])

thumbnailLink = map["volumeInfo"]["imageLinks"]?["thumbnail"] ?? "https://placehold.co/200x290";

2 respostas
solução!

Olá, Rafael!

A função do operador "?" entre as duas chaves do map é verificar se o valor do primeiro índice é nulo antes de acessar o segundo índice. Isso é conhecido como operador de acesso condicional ou operador de navegação segura.

No seu exemplo, a linha de código thumbnailLink = map["volumeInfo"]["imageLinks"]?["thumbnail"] ?? "https://placehold.co/200x290"; está verificando se o valor de map["volumeInfo"]["imageLinks"] é nulo antes de acessar o valor de ["thumbnail"]. Se o valor de map["volumeInfo"]["imageLinks"] for nulo, o operador de navegação segura retornará nulo e, em seguida, o operador ?? irá atribuir o valor "https://placehold.co/200x290" à variável thumbnailLink.

Isso é útil para evitar erros de NullPointerException quando você está acessando propriedades aninhadas em um objeto e algumas delas podem ser nulas.

Espero ter ajudado! Bons estudos!

Ótima explicação Renan. Obrigado!