Imagem do artigo Conceitos avançados de Dart: Null safety

4.4. Conceitos avançados de Dart: Null safety

Página 42 | Ouça em áudio

Para começar a entender os conceitos avançados de Dart, é importante primeiro compreender o que é Null safety. Null safety é uma maneira de garantir que seu código não tenha erros de null pointer, que são erros comuns em muitas linguagens de programação, incluindo Dart. Com o Null safety, você pode evitar esses erros de maneira eficaz, tornando seu código mais seguro e eficiente.

Dart 2.12 introduziu o Null safety como uma das suas principais características, o que significa que os tipos de dados não podem ser nulos por padrão. Por exemplo, se você declarar uma variável como String, ela não pode ser nula. Se você quiser que ela possa ser nula, você deve declará-la como String?.

Para entender melhor, vamos considerar um exemplo. Suponha que você tenha um objeto User com um campo name. Se você tentar acessar user.name e user for nulo, você terá um erro de Null Pointer Exception. Mas com o Null safety, o compilador Dart irá avisá-lo que user pode ser nulo e que você precisa verificar isso antes de acessar o campo name.

Então, como você pode verificar isso? A maneira mais comum é usando o operador ?. antes de acessar o campo. Então você faria user?.name. Se user for nulo, user?.name também será nulo, e nenhuma exceção será lançada.

Outra maneira é usando o operador !!. Se user for nulo e você fizer user!!.name, uma exceção será lançada. Isso é útil quando você está absolutamente certo de que user não é nulo. Se você estiver errado, receberá uma exceção, o que é uma boa maneira de descobrir bugs no seu código.

Além disso, Dart também introduziu o conceito de tipos não nulos e tipos potencialmente nulos. Um tipo não nulo é um tipo que não pode ser nulo. Por exemplo, int é um tipo não nulo, porque você não pode atribuir null a ele. Por outro lado, int? é um tipo potencialmente nulo, porque você pode atribuir null a ele.

Com o Null safety, você também pode usar o operador ?? para fornecer um valor padrão para uma variável que pode ser nula. Por exemplo, você pode fazer user?.name ?? 'Guest' para usar 'Guest' como o nome padrão se user for nulo ou se user.name for nulo.

Outro recurso útil introduzido com o Null safety é o operador ?.. para chamar métodos ou acessar campos em um objeto que pode ser nulo. Por exemplo, você pode fazer user?..logout() para chamar o método logout em user apenas se user não for nulo.

Em resumo, o Null safety é uma característica poderosa do Dart que ajuda a tornar seu código mais seguro e limpo, evitando erros comuns de null pointer. Ele faz isso através de uma combinação de tipos não nulos e potencialmente nulos, e operadores como ?, !!, ?? e ?... Com esses recursos, você pode escrever código que lida com null de maneira segura e eficaz, tornando seu código mais robusto e menos propenso a bugs.

Portanto, ao criar aplicativos do zero ao avançado utilizando Flutter e Dart, é essencial ter um bom entendimento do Null safety e como usá-lo em seu código. Isso não apenas ajudará a evitar erros comuns, mas também tornará seu código mais fácil de entender e manter.

Com o Null safety, você pode garantir que seu código Dart seja robusto, seguro e eficiente. E isso é essencial para criar aplicativos de alta qualidade com Flutter e Dart.

Agora responda o exercício sobre o conteúdo:

O que é Null safety no contexto da linguagem de programação Dart e como ele pode ser usado?

Você acertou! Parabéns, agora siga para a próxima página

Você errou! Tente novamente.

Imagem do artigo Conceitos avançados de Dart: Programação assíncrona

Próxima página do Ebook Gratuito:

43Conceitos avançados de Dart: Programação assíncrona

3 minutos

Ganhe seu Certificado deste Curso Gratuitamente! ao baixar o aplicativo Cursa e ler o ebook por lá. Disponível na Google Play ou App Store!

Disponível no Google Play Disponível no App Store

+ de 6,5 milhões
de alunos

Certificado Gratuito e
Válido em todo o Brasil

48 mil exercícios
gratuitos

4,8/5 classificação
nas lojas de apps

Cursos gratuitos em
vídeo, áudio e texto