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!