Descarga la aplicación para disfrutar aún más
Vista previa del material en texto
Semana 4: Fundamentos de Dart (iv) Facultad de Ingeniería de Sistema e Informática LENGUAJE DE PROGRAMACIÓN V Ing. Angel Marthans Ruiz, Mg. Objetivos: Al finalizar, el alumno logrará: Conocer el concepto de Nullability en Dart Conocer e implementar diferentes tipos de colecciones. 2 Temas: Nulables Listas Sets Mapas Iterables 3 Nulables 4 Nulo significa "sin valor" o "ausencia de valor". Es muy útil tener este concepto. Imagina no tener null en absoluto. Digamos que le pides a un usuario su código postal para poder guardarlo como un entero en tu programa: Todo irá bien hasta que obtengas un usuario que no tenga código postal. Sin embargo, tu programa requiere algún valor, así que ¿qué le das? ¿Tal vez 0 o -1?. Esto no seria muy fácil de comprender para todos. Nulables 5 Por otro lado, si puedes tener un valor dedicado llamado null, que todo el mundo ya entiende que significa "sin valor", entonces no necesitas explicar lo que significa. Por muy útil que sea null para indicar la ausencia de un valor, los desarrolladores tienen un problema con él. El problema es que tienden a olvidar que existe. Y cuando los desarrolladores se olvidan de null, no lo manejan en su código. Esos nulos son como pequeñas bombas a punto de explotar. Nulables 6 Nulables 7 Dart separa sus tipos en nulables y no nulables. Los tipos nulables terminan con un signo de interrogación ( ? ) mientras que los no nulables no. Tipos No Nulables Los tipos Dart son no-nulables por defecto. Esto significa que está garantizado que nunca contendrán el valor null. Estos tipos son fáciles de reconocer porque, a diferencia de los tipos anulables, no tienen un signo de interrogación al final. Nulables 8 Tipos Nulables Un tipo nulable puede contener el valor null además de su propio tipo de datos. Se puede decir fácilmente que el tipo es nulable porque termina con un signo de interrogación ( ? ), que es como decir: "Tal vez tiene los datos que se desea o tal vez tiene null". Nulables 9 El signo de interrogación que aparece al final de String? no es un operador que actúe sobre el tipo String. Más bien, String? es un tipo completamente nuevo separado de String . String? significa que la variable puede contener una cadena o puede ser null . Es una unión de los tipos String y Null. Cada tipo no anulable en Dart tiene su correspondiente tipo nulable: int e int? bool y bool? User y User? Objeto y ¿Objeto? Al elegir el tipo, puedes elegir cuándo quieres permitir valores nulos y cuándo no. Nulables 1 0 Operadores Nulos Operador If-Null (??) Una forma práctica de tratar los valores nulos es utilizar el signo de interrogación doble ? conocido como operador if-null. Este operador dice: "Si el valor de la izquierda es nulo , entonces use el valor de la derecha". Es una manera fácil de proporcionar un valor por defecto para cuando una variable está vacía. Nulables 1 1 Operador de Asignación Nulo (??=) En el ejemplo anterior, tenía dos variables: message y text . Sin embargo, otra situación común es cuando se tiene una sola variable que se desea actualizar si su valor es nulo. Nulables 1 2 Operador de Acceso seguro contra Nulos (?.) También hay un operador para la seguridad null cuando se accede a los miembros del objeto. El operador de acceso seguro contra nulos ( ?. ) devuelve nulo si el lado izquierdo es nulo. En caso contrario, devuelve la propiedad del lado derecho. Nulables 1 3 Operador de Afirmación Nula (!) A veces Dart no está seguro de si una variable nulable es nula o no, pero tú sabes que no lo es. Así que si estás absolutamente seguro de que una variable no es nula, puedes convertirla en un tipo no-nulable usando el operador de afirmaciób nulo ( ! ); más conocido como el operador bang. Listas 1 4 List En casi todas las aplicaciones que realice, tratará con colecciones de datos. List es el principal con la que trabajarás en Dart. Una lista es ideal para almacenar muchos objetos del mismo tipo de forma ordenada. Las listas en Dart son como lo que otros lenguajes llaman arrays. Listas 1 5 Operador Spread Usado para combinar listas Sets 1 6 Set Un Set es una colección de elementos en la que el orden no es importante y los elementos duplicados se ignoran. Mapas 1 7 Map Los mapas en Dart son la estructura de datos utilizada para contener pares clave-valor. Son como los mapas hash y los diccionarios en otros lenguajes. Si no estás familiarizado con los mapas, piensa en ellos como colecciones de variables que contienen datos. La clave es el nombre de la variable y el valor son los datos que contiene. Para encontrar un valor concreto, dale al mapa el nombre de la clave asignada a ese valor. Iterables 1 8 Iterables Un iterable en Dart es cualquier colección que te permite hacer un bucle a través de sus elementos. En términos más técnicos, es una clase que implementa la interfaz Iterable. List y Set son dos iterables con los que ya estás familiarizado. Sin embargo, no todas las colecciones Dart son iterables. No puedes hacer un bucle directamente sobre un mapa. Si quieres visitar todos los elementos de un mapa, tienes que iterar sobre las claves, valores o entradas, todos los cuales son iterables. Iterables 1 9 Cuando usar Listas, Sets, Mapas o Iterables? Elija listas si el orden es importante. Intente insertar valores al final de las listas siempre que sea posible para que las cosas funcionen sin problemas. Y ten en cuenta que las búsquedas pueden ser lentas con colecciones grandes. Elija conjuntos si sólo le interesa saber si algo está o no en la colección. Es más rápido que buscar en una lista. Elija mapas si necesita buscar con frecuencia un valor por su clave. También es una operación rápida. Elija iterables si tiene colecciones grandes en las que necesita visitar todos los elementos perezosamente (Lazy Load). Referencias: https://dart.dev/language/collections https://dart.dev/language/built-in-types 2 0 https://dart.dev/language/collections https://dart.dev/language/built-in-types La manera de empezar es dejar de hablar y comenzar a actuar. Walt Disney 2 1 �����Semana 4: Fundamentos de Dart (iv) Objetivos: �Al finalizar, el alumno logrará: Temas: Nulables Nulables Nulables Nulables Nulables Nulables Nulables Nulables Nulables Nulables Listas Listas Sets Mapas Iterables Iterables Referencias: La manera de empezar es dejar de hablar y comenzar a actuar.
Compartir