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";
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";
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!