‫Bem vindo de volta.
‫Neste vídeo, vamos dar uma olhada em romances e romances são um conceito que você vê em outras linguagens de
‫programação.
‫Por exemplo, o Swift os usa extensivamente e são chamados de opcionais.
‫Portanto, são variáveis que podem ter um valor ou não.
‫Portanto, existem duas opções, certo.
‫Portanto, algo tem um valor ou não tem, e geralmente isso é agora ou não.
‫Então, vamos criar alguns.
‫E, a propósito, é um tipo de dados, então o tipo de dados pode estar vazio ou não.
‫E geralmente isso é anulável, como você pode ver aqui, e anulável do tipo INT 32, por exemplo.
‫Então, geralmente é assim que você escreve e como o escreveria.
‫Isso seria anulável em 32.
‫Portanto, um valor que pode ter valores de menos dois bilhões, aproximadamente até mais dois bilhões.
‫Então, vamos em frente e criá-los.
‫Portanto, para criar um romance, basta adicionar um ponto de interrogação após esse tipo de dados.
‫Portanto, se você quiser um número inteiro anulável, como acabei de escrever, você usará apenas um ponto de interrogação
‫e irei chamar esse número um e ele será nulo.
‫Vamos criar outro que estou chamando de número dois e disse isso para null.
‫E como você pode ver, temos um erro aqui.
‫Então está reclamando.
‫Ele diz que não é possível converter a palavra agora em INT porque não é ou é um tipo de valor não anulável.
‫Portanto, você não pode atribuir nulo a um inteiro.
‫Isso é o que você diz ver aqui.
‫Mas você pode atribuir nulo a um inteiro anulável, o que fizemos em uma linha nove.
‫Tudo bem.
‫Então vamos criar outro e esse será o número dois e será um três três sete um mil trezentos e
‫trinta e sete.
‫É assim que você criaria um álbum.
‫Quando você vê que é nulo ou tem um valor.
‫O mesmo vale para duplas.
‫Portanto, duplo ponto de interrogação.
‫O número três é um novo duplo e um ponto de interrogação como esse.
‫Então é assim que você pode atribuir um duplo anulável.
‫Portanto, este estará vazio ou aqui o número quatro é três vírgula um quatro um cinco sete.
‫Então isso é PI e o mesmo vale para booleanos.
‫Portanto, é um bu anulável e vou dizer que Movil é um novo ponto de
‫interrogação bool como esse.
‫Então, vamos dar uma olhada, vamos apenas exibir isso na tela e ver o que temos.
‫Então S. C. , nossos números anuláveis são e vamos usar zero um.
‫Dois e três, e esse será o número um, o número dois, três e quatro e, claro, está reclamando porque preciso
‫terminar meu barbante aqui.
‫Tudo bem.
‫E também vamos mostrar nosso touro.
‫Então, S. C. , o valor booleano anulável é and the bull volle okeydokey.
‫Então, vamos tentar esse controle cinco.
‫E nossos números anuláveis são, como você pode ver, nada.
‫Portanto, não é nem mesmo um espaço vazio.
‫Não é nada.
‫Um três três sete nada e três um quatro um cinco sete.
‫E o valor booleano anulável não é nada.
‫Então, como você pode ver, pode não ser nada e não é reclamação.
‫Portanto, embora não haja nenhum valor lá, ainda está bom.
‫Não está travando nosso programa ou coisas assim.
‫Se você tentar fazer a mesma coisa com um inteiro, não é maleável.
‫Então, vamos criar um número inteiro chamado de número cinco e vamos fazer assim.
‫Portanto, não o inicializamos.
‫E também está vazio, certo?
‫Portanto, não há valor aí.
‫Se eu tentei acessar aquele assim e vou usar o número cinco aqui, vamos sacudir isso.
‫Controle de cinco.
‫E como você pode ver, temos erro de compilação.
‫Portanto, não podemos nem parar com isso porque diz o uso da variável local número cinco não atribuída.
‫Então esse é o ponto principal sobre isso.
‫Você cria uma variável que pode estar vazia ou não pode estar vazia.
‫E está tudo bem com o programa.
‫Não vai travar.
‫E por que você usaria isso, qual seria a ideia por trás de Nullable?
‫Bem, imagine que você tem um programa que trabalha com muitos dados, então tem dados do usuário e os obtém do banco
‫de dados.
‫E para alguns valores ou para algumas colunas, simplesmente não há entradas.
‫Digamos que temos nomes de usuário, nome ou nome pessoal, sobrenome, data de nascimento e assim por
‫diante.
‫Todas essas informações podem ser armazenadas em nosso banco de dados.
‫Mas para a maioria dos usuários, temos apenas o nome de usuário.
‫Não temos o nome, o sobrenome, não temos a senha, o endereço de e-mail, nada
‫disso.
‫Temos apenas o nome de usuário e ainda queremos que nosso programa funcione corretamente.
‫Portanto, usaremos apenas múltiplos, o que está certo.
‫Se não houver valor, eles não farão nosso programa Kresh.
‫Então, vamos fazer um exemplo muito, muito genérico disso.
‫E vou usar um bool aqui, que será um conhecedor e vou chamá-lo de mail e vou defini-lo como
‫null e aqui vou apenas verificar se é mail.
‫É nulo ou realmente é verdade.
‫Então, se for verdade.
‫Está certo.
‫Algo como user is mail então senão se mail for false, direi algo como user is female.
‫E então, finalmente, apenas dizemos algo como nenhuma escolha de gênero ou talvez algo como nenhum gênero pode ser encontrado ou
‫algo assim.
‫E isso nós somos.
‫Portanto, agora você pode seguir em frente e usar esse tipo de abordagem.
‫Direito.
‫E vamos colocá-lo na próxima linha.
‫E se corrermos tão bem, é claro, não temos nenhum gênero escolhido e, no meu caso, meu programa
‫será encerrado imediatamente depois que disser isso e eu ainda o fiz.
‫Um erro em algum lugar e, bem, como eu descobriria?
‫Bem, é este aqui.
‫Então, ainda tenho esse quatro em meu texto e ele está tentando acessá-lo.
‫Mas está faltando alguma coisa, então é por isso que não funciona.
‫Tudo bem.
‫Agora podemos tentar ganhar o controle às cinco.
‫E nós somos nossos números anuláveis, isso é totalmente normal.
‫E então aqui, nenhuma escolha de gênero.
‫Tudo bem, isso é bom e tal, mas e se você quiser converter um tipo anulável em um não
‫anulável?
‫Bem, vamos tentar isso.
‫Vamos criar uma bolha anulável aqui.
‫Vamos chamar o número cinco, e vai ser treze vírgula um e então o dobro, na verdade, vamos chamá-lo de número seis,
‫porque temos esse número cinco aqui, que nunca usamos.
‫Mas vou deixar isso aí.
‫Não está machucando ninguém.
‫Então, o número sete será agora.
‫Então, como faço para convertê-los em um tipo não anulável?
‫E vou criar o número oito, que será um duplo anulável.
‫Então, é um duplo geral, certo?
‫Não pode ser agora ou não podemos atribuir nulo a ele.
‫E agora nós apenas verificamos se num seis é igual a agora, então o número oito será zero vírgula zero e então apenas vai dizer
‫não.
‫Oito deve ser o número quatro e seis seis.
‫Mas aí temos o problema porque, como você pode ver, deixe-me acrescentar isso, não posso simplesmente atribuí-lo.
‫Ele diz que não é possível converter implicitamente o tipo de ponto de interrogação duplo em duplo, uma conversão explícita existe.
‫Estou perdendo um gesso e é isso que precisamos fazer.
‫Portanto, precisamos transformá-lo em um duplo porque precisamos saber se não é agora, então o número seis internamente é um
‫duplo.
‫Portanto, ele contém valores duplos.
‫Vou usar isso e atribuí-lo ao número oito para que possamos seguir em frente
‫e mostrar que o valor de NUM oito é nove oito.
‫Então, vamos começar com o controle cinco.
‫E como você pode ver, o valor do número oito é treze vírgula um.
‫Então, o casting, a conversão explícita funcionou.
‫Há, no entanto, uma maneira mais rápida de fazer isso, então, como você pode ver, é um pouco trabalhoso.
‫Precisávamos ver se, a menos que haja o operador agora coalescente, que possamos usar para isso.
‫Portanto, podemos apenas dizer que o número oito é igual ao número seis.
‫Ponto de interrogação, ponto de interrogação, oito vírgula cinco três, por exemplo.
‫Portanto, se o número seis estiver vazio, vá em frente e adicione ou insira oito vírgula cinco três e, se não estiver,
‫faça outra coisa.
‫O que vou fazer é adicionar outra linha e escrever algo como o valor
‫de NUM oito é.
‫E, na verdade, isso é apenas copiar porque precisamos disso duas vezes e não quero digitar tanto para que possamos.
‫Agora, vamos tentar novamente e ver a diferença.
‫E como você pode ver, o valor de nenhuma idade é treze vírgula um, o valor do número oito é treze vírgula
‫um e o valor do número oito é oito vírgula cinco três.
‫Então o que aconteceu aqui?
‫O que foi ignorado aqui na linha 50?
‫Porque ele disse, bem, estava bem, eu atribuí oito vírgula cinco três a ele, mas ao que parece, o número
‫seis.
‫Teve um valor e foi tirado então como mãe seis tinha um valor, pegou apenas treze vírgula um e como NUM sete não tinha um valor,
‫nada feito agora é oito vírgula cinco três, porque se olharmos agora, sete é
‫nulo.
‫Portanto, atribuímos um valor diferente a ele.
‫Então isso é chamado.
‫Eu estou indo.
‫Copie para você, o agora operador coalescente, duplo ponto de interrogação.
‫Portanto, se você deseja converter de um tipo que pode ser anunciado em um não anulável, pode usar o operador de coalescência
‫Tindell.