‫Bienvenido de nuevo.
‫En este video, veremos las novelas y las novelas son un concepto que ves en otros lenguajes de
‫programación.
‫Por ejemplo, Swift los usa bastante y allí se llaman opcionales.
‫Entonces son variables que pueden tener un valor o no tienen un valor.
‫Entonces hay dos opciones, ¿verdad?
‫Entonces, o algo tiene un valor o no tiene un valor, y por lo general eso es ahora o no.
‫Así que creemos algunos.
‫Y, por cierto, es un tipo de datos, por lo que el tipo de datos puede estar vacío o no.
‫Y, por lo general, es como anulable, como puede ver aquí, y anulable de tipo INT 32, por ejemplo.
‫Entonces, en general, así es como escribes cómo lo escribirías.
‫Eso sería un nullable en 32.
‫Entonces, un valor que puede tener valores desde menos dos mil millones, aproximadamente hasta más dos mil millones.
‫Así que sigamos adelante y creámoslos.
‫Entonces, para crear una novela, simplemente agregue un signo de interrogación después de ese tipo de datos.
‫Entonces, si desea tener un número entero que acepte nulos, como acabo de escribir, solo usará un signo de interrogación
‫y simplemente llamaré a ese número uno y será nulo.
‫Creemos otro al que llamo número dos y le digo que es nulo.
‫Y como puede ver, aquí aparece un error.
‫Entonces se está quejando.
‫Dice que no se puede convertir word ahora a INT porque no es un tipo de valor anulable o no.
‫Por lo tanto, no puede asignar un valor nulo a un número entero.
‫Eso es lo que dices ver aquí.
‫Pero puede asignar un valor nulo a un entero que acepta valores NULL, lo que hemos hecho en una línea nueve.
‫Está bien.
‫Así que creemos otro y ese será el número dos y será uno tres tres siete mil trescientos
‫treinta y siete.
‫Así es como seguirías adelante y crearías un álbum.
‫Cuando vea que es nulo o tiene un valor.
‫Lo mismo ocurre con los dobles.
‫Entonces doble signo de interrogación.
‫El número tres es un nuevo doble y un signo de interrogación como ese.
‫Así es como también puedes asignar un doble que acepta valores NULL.
‫Entonces este estará vacío o aquí el número cuatro es tres punto uno cuatro uno cinco siete.
‫Así que eso es PI y lo mismo ocurre con los booleanos.
‫Así que es un bu que acepta valores NULL y voy a decir que Móvil es un nuevo signo
‫de interrogación bool como ese.
‫Así que echémosle un vistazo, mostrémoslo en la pantalla y veamos qué obtenemos.
‫Entonces S. W. , nuestros números que aceptan valores NULL son y vamos a usar cero uno.
‫Dos y tres, y ese será el número uno, el número dos, el tres y el cuatro, y por supuesto, se está quejando porque
‫necesito terminar mi cadena aquí.
‫Está bien.
‫Y también mostremos nuestro toro.
‫Entonces, S. W. , el valor booleano que acepta valores NULL es y el bull volle okeydokey.
‫Intentemos con el control cinco.
‫Y nuestros números que aceptan valores NULL no son, como puede ver, nada.
‫Entonces ni siquiera es un espacio vacío.
‫Simplemente no es nada.
‫Uno tres tres siete nada y tres uno cuatro uno cinco siete.
‫Y el valor booleano que acepta valores NULL no es nada.
‫Entonces, como puede ver, puede ser nada y no se está quejando.
‫Entonces, aunque no hay ningún valor allí, todavía está bien.
‫No está bloqueando nuestro programa o cosas por el estilo.
‫Si intenta hacer lo mismo con un número entero, que no es maleable.
‫Así que creemos un número entero llamado número cinco y hagámoslo así.
‫Entonces no lo inicializamos.
‫Y también está vacío, ¿verdad?
‫Entonces no hay valor ahí.
‫Si intenté acceder a ese de esa manera y voy a usar el número cinco aquí, sacámoslo.
‫Control de cinco.
‫Y como puede ver, tenemos un error de compilación.
‫Así que ni siquiera podemos detener eso porque dice el uso de la variable local número cinco sin asignar.
‫Así que ese es el punto de todo eso.
‫Creas una variable que puede estar vacía o no puede estar vacía.
‫Y eso está totalmente bien con el programa.
‫No chocará.
‫¿Y por qué usarías eso, cuál sería la idea detrás de Nullable?
‫Bueno, imagina que tienes un programa que trabaja con una gran cantidad de datos, por lo que tiene datos de usuario y los obtiene de la base
‫de datos.
‫Y para algunos valores o para algunas columnas, simplemente no hay entradas.
‫Así que digamos que tenemos nombres de usuario, tenemos nombre personal o nombre, apellido, luego tenemos cumpleaños y así
‫sucesivamente.
‫Toda esa información se puede almacenar en nuestra base de datos.
‫Pero para la mayoría de los usuarios, solo tenemos el nombre de usuario.
‫No tenemos su nombre, apellido, no tenemos la contraseña, su dirección de correo electrónico, nada de
‫eso.
‫Solo tenemos el nombre de usuario y aún queremos que nuestro programa funcione correctamente.
‫Así que usaremos múltiplos que están bien.
‫Si no hay ningún valor, no harán nuestro programa Kresh.
‫Así que hagamos un ejemplo muy, muy genérico de eso.
‫Y voy a usar un bool aquí, que será un conocimiento y voy a llamarlo es correo y lo voy a establecer
‫en nulo y aquí solo voy a verificar es correo.
‫¿Es nulo o realmente es cierto?
‫Entonces si es verdad.
‫Eso es correcto.
‫Algo como el usuario es correo, entonces si el correo es falso, voy a decir algo como el usuario es mujer.
‫Y luego, finalmente, simplemente decimos algo como ninguna elección de género o tal vez algo como que no se pudo encontrar ningún género
‫o algo así.
‫Y eso somos.
‫Así que ahora puede seguir adelante y utilizar ese tipo de enfoque.
‫Derecha.
‫Y lo vamos a poner en la siguiente línea.
‫Y si lo hacemos bien, por supuesto, no elegimos ningún género y, en mi caso, mi programa se
‫cerrará inmediatamente después de que diga eso y todavía lo he hecho.
‫Un error en alguna parte y, bueno, ¿cómo lo resolvería?
‫Bueno, es este de aquí.
‫Así que todavía tengo estos cuatro en mi texto y estoy tratando de acceder a ellos.
‫Pero falta algo, por eso no funciona.
‫Está bien.
‫Ahora podemos intentar tomar el control a las cinco.
‫Y somos nuestros números que aceptan valores NULL, eso está totalmente bien.
‫Y luego aquí, no hay elección de género.
‫Está bien, todo está bien y esas cosas, pero ¿qué pasa si quieres convertir un tipo que acepta valores NULL en un tipo que no admite valores
‫NULL?
‫Bueno, sigamos adelante e intentemos eso.
‫Creemos aquí una burbuja que acepta valores NULL.
‫Llamemos al número cinco, y será trece punto uno y luego el doble, llamémoslo número seis, porque tenemos
‫este número cinco aquí, que nunca usamos.
‫Pero lo dejaré ahí.
‫No le hace daño a nadie.
‫Así que el número siete será ahora.
‫Entonces, ¿cómo puedo convertirlos en un tipo que no acepta valores NULL?
‫Y voy a crear el número ocho, que será un doble anulable.
‫Entonces es un doble general, ¿verdad?
‫No puede ser ahora o no podemos asignarle nulo.
‫Y ahora solo verificamos si el número seis es igual ahora, entonces el número ocho será cero punto cero y de lo contrario solo dirá
‫No.
‫Ocho debería ser el número cuatro y el seis seis.
‫Pero ahí tenemos el problema porque, como pueden ver, permítanme agregar algo más, no puedo simplemente asignarlo.
‫Dice que no se puede convertir implícitamente el tipo double questionmark al doble, ya que existe una conversión explícita.
‫Así que me falta un yeso y eso es lo que tenemos que hacer.
‫Entonces necesitamos convertirlo en un doble porque necesitamos saber si no es ahora, entonces el número seis internamente es un
‫doble.
‫Entonces contiene valores dobles.
‫Así que voy a usar eso y asignarlo al número ocho para que podamos seguir
‫adelante y mostrar que el valor de NUM ocho es nueve ocho.
‫Así que comencemos con el control cinco.
‫Y como puede ver, el valor del número ocho es trece coma uno.
‫Así que el casting, la conversión explícita funcionó.
‫Sin embargo, hay una forma más rápida de hacerlo, por lo que, como puede ver, supuso un gran esfuerzo.
‫Necesitábamos ver si, a menos que exista el operador ahora fusionante que podamos usar para eso.
‫Entonces, podemos decir que el número ocho es igual al número seis.
‫Signo de interrogación, signo de interrogación, ocho punto cinco tres, por ejemplo.
‫Entonces, si el número seis está vacío, entonces agregue o ingrese ocho punto cinco tres, y si no,
‫haga otra cosa.
‫Lo que voy a hacer es agregar otra línea y escribir algo como el valor
‫de NUM ocho es.
‫Y en realidad eso es solo copiar eso porque lo necesitamos dos veces y no quiero escribir tanto para que lo hagamos.
‫Ahora, sigamos adelante e intentemos eso de nuevo y veamos la diferencia.
‫Y como puede ver, el valor de ninguna edad es trece punto uno, el valor del número ocho es trece punto uno
‫y el valor del número ocho es ocho punto cinco tres.
‫Entonces, ¿qué pasó aquí?
‫¿Qué se ignoró aquí en la línea 50?
‫Porque decía, bueno, estuvo bien, le asigné ocho punto cinco tres, pero como parece, el número
‫seis.
‫Tenía un valor y se tomó, así que mamá seis tenía un valor, solo tomó trece punto uno y como NUM siete no tenía un valor,
‫ninguno hecho ahora es ocho punto cinco tres, porque si lo miramos ahora, siete es
‫nulo.
‫Así que le asignamos un valor diferente.
‫Así que se llama.
‫Solo voy a hacerlo.
‫Cópielo para usted, el operador que ahora se fusiona, doble signo de interrogación.
‫Entonces, si desea convertir de un tipo anunciable a un tipo que no acepta valores NULL, puede usar el operador coalescente de
‫Tindell.