es momento de trabajar con el tipo de dato mapa digamos voice Main paréntesis o llaves el ejercicio anterior que nosotros hicimos de Pokémon lo podríamos resumir Porque si ustedes se fijan Son un montón de variables que todas están relacionadas a el mismo Pokémon entonces podríamos crearnos un mapa que contenga cada una de esas propiedades Entonces vamos a hacerlo final Pokémon va a ser igual a cero llaves y esto básicamente lo transforma en un mapa ojo que tiene que terminar con punto y coma y el punto y coma recuerden en dar no es opcional aquí voy
a hacer el print del Pokémon para que lo vayamos viendo conforme lo vayamos utilizando Entonces yo lo dejo de esta manera Dart va a tener un momento un poquito incómodo Por qué Porque aquí me dice mapa de tipo dynamic dynamic y este es nuestro Pokémon pero si yo luego pongo 1 2 3 por ejemplo aquí adentro y dijo el cursor encima Ah ahora es un set de datos entonces por eso es ideal que nosotros tipemos nuestros objetos Aunque Dart va a inferirlo correctamente pasado en el valor de la asignación Ok A qué nos referimos con
este o qué Qué es básicamente un mapa básicamente son pares de valores que valuepers nosotros vamos a tener aquí el name que sería dito ojo que yo puse comilla sencilla aquí al inicio o puede ser comilla doble y lo que estoy diciéndole aquí es que si dejo el cursor encima de Pokémon van a ver que aquí dice y cambio de dynamic dynamic a mapa de tipo String y luego String y este es el Pokémon Es decir un mapa cuyas llaves son String y los valores siempre van a ser strings no está infiriendo correctamente sigamos ahora
voy a colocar hp y HP va a ser el valor de 100 si dejo el cursor encima de Pokémon van a ver que cambio un poco y dice Maps String coma object a pesar de que es un String y aquí un número entero Pero por qué objeto básicamente en Dart es al igual que en otro lenguaje de programación todo se reduce a que todos son objetos No todos son clases que extienden o sea un String por ejemplo es un objeto también un entero es un objeto todo es al final del cuentas todos son objetos porque
tienen sus propiedades y métodos o sea básicamente todo todo se resume objetos y ese objeto es básicamente decir que puede ser casi que cualquier cosa no es es similar nuevamente no quiero confundirlos pero en pocas palabras cuando ustedes tengan un tipo de dato que diga object mentalícese que puede ser cualquier cosa Aunque técnicamente lo que ustedes van a ver allá afuera en la mayor parte de los ejercicios es que van a tiparlo por ejemplo así String comma dynamic Ok Eso es lo más común que ustedes van a ver allá afuera cuando estén trabajando con mapas
a menos de que ustedes estrictamente sepan Cuáles son los valores de esos esquí valuepers No porque no necesariamente ustedes pueden tener strings como sus llaves perfectamente pueden hacer final que se yo Pokémons voy a poner así Pokémon va a ser igual a cero llaves y el Pokémon uno sería qué sé yo sé que este no es el número que sería el Pokémon ABC Y luego el Pokémon 2 sería el Pokémon xyz Y luego el Pokémon 3 sería qué sé yo 1 2 3 y el Pokémon que soy yo 150 y lo puedo hacer así perfectamente
sería igual a cualquier cosa que yo quiero hacer no y punto y coma Ups punto com esto perfectamente es permitido entonces si yo dejo el cursor encima de Pokémon van a ver que la llave o la firma misma de Pokémon dice que es las llaves o sea esta de aquí son enteros y su valor es un String porque literalmente eso es lo que tenemos esto es súper genial porque ustedes pueden utilizar los mapas como mejor convenga en su programa no están amarrados de que las llaves siempre van a ser strings súper súper genial luego voy
a colocar aquí Is A Life para saber si está vivo eso hace igual un valor booleano luego voy a colocar aquí a billys que va a ser igual a un listado donde voy a poner impostor Y nuevamente si ustedes quieren pueden obligarlo a que sea algún tipo de dato acá pues va a ser un listado de strings luego sprites perfectamente podemos hacerlo aquí no lo voy a lo voy a asociar a otro mapa por ejemplo la llave de este mapa va a ser uno que sería dito Slash Front coma dos dos puntos y aquí sería
dito slashback y pongámosle punto png punto png si ustedes quieren tirar podrían decir que esto es un mapa en el cual tendríamos int y un String como tipo de dato perfectamente nosotros podemos ir añadiendo cada una de estas definiciones Aunque aquí la palabra map está de más es muy raro que ustedes lleguen a verlo así también puesto no pero estoy aquí es un mapa Aunque darlo a inferir correctamente en pocas palabras lo que nosotros vamos creando aquí es exactamente lo mismo que teníamos originalmente con un montón de variables solo que ahora está todo dentro de
un mapa para utilizar los mapas Hay muchas formas Pero la forma más sencilla la forma más sencilla Déjenme ser un poco de espacio acá es utilizar la notación de llave cuadrada Yo sé que más de uno diría OK Y si yo quiero el name del nombre del Pokémon y lo quiero imprimir en consola Porque si ustedes lo Ejecutan van a ver quién la consola aparece todo el Pokémon Y eso está bien Esperemos un segundo Ahí está pero si yo quiero imprimir únicamente o tomar únicamente la llave name cómo lo hacemos voy a poner aquí print
y voy a seguir name dos puntos sería igual a símbolo de dólar porque quiero ser una interpolación de String abrí cero llaves porque quiero hacer una expresión voy a hacer referencia a mi Pokémon y aquí viene lo interesante si ustedes ponen punto van a tener todos los métodos y propiedades que los mapas tienen Ok cuanto a las cuantas llaves tiene Cuál es el largo de valores Cuáles son los valores etcétera Cuál es el rountain type en fin tenemos información propiamente del objeto mapa pero no tenemos estos estas propiedades que yo definí si yo quiero el
name en lugar de poner un punto pongo llave cuadrada y luego de la llave cuadrada voy a poner el String name y aquí termino con punto y coma sería diferente si las llaves fueran números por ejemplo si fuera un número entonces aquí yo podría optar por tomar la llave 1 que se podría confundir a alguien porque podría decir bueno Y esto como sé que es un listado o sea como sé que eso no es el listado que quiero la posición 2 porque Recuerden que en Dart los listados y está basado en un índice de cero
pero Dart sabe cuando ustedes quieren referirse a un listado o cuando se están refiriendo a un mapa que es este caso si yo lo ejecuto la segunda línea que vamos a tener aquí es el nombre del Pokémon Y así sucesivamente con los demás por ejemplo Quiero los sprites voy a colocar aquí sprites entonces aquí ya estaría esperando que aparezcan las imágenes que sería el backy Front ahí las tenemos ven también Ustedes deben de saber de que esto es un mapa porque tenemos llave luego tenemos que valuepers es decir pares de valores si ustedes solo tuvieran
un valor seguido de comas eso se traduce a un set de datos que ya vamos a hablar más de eso tarea que por si acaso ustedes nunca han tomado ninguno de mis cursos hay muchas tareas que yo les voy a ir dejando a ustedes les voy a decir pónganle pausa el video hagan esta tarea entonces el objetivo es que ustedes empiecen a ensuciar las manos la tarea es la siguiente Necesito que aquí ustedes impriman aparte de estos sprites van a poner dos nuevas líneas o impresiones de consola y aquí van unir el Back y Front
ojo En este orden Quiero la imagen del Back que es esta y el Front sería esta de aquí Necesito que ustedes hagan la referencia a esos objetos que están dentro del mapa sprites cómo lo van a hacer no tengo la menor idea traten de ensuciarse las manos jueguen con lo que ustedes están viendo en pantalla traten de resolverlo Y si pasan más de 5 minutos y ustedes están ahogados con el problema no se preocupen estamos aquí para aprender pero hagan un intento en esto para ponerle pausa y mi solución en unos momentos en este mismo
vídeo así que mucha suerte ponle pausa ahora Cómo les fue lo lograron hacer espero que sí y si no resolvamos esto juntos recuerden nosotros lo que tenemos en sprites O sea ya tenemos la referencia los sprites lo que ocupa ahora es la referencia a la imagen de El Front y el Back esta imagen del Back Yo sé que tiene la llave 2 entonces voy a poner llaves cuadradas dos y la otra ya ves cuadradas 1 eso era básicamente lo que les pedía que ustedes hicieran de tarea al ejecutarlo deberíamos detener la imagen del Back y
la imagen del Front fenomenal noten que esto puede tender a ser un poco confuso ver algo así es difícil de leer y es muy raro que ustedes lo lleguen a utilizar usualmente Cuando tenemos objetos que por ejemplo esto puede ser la respuesta de una petición http que me viene este objeto que es de tipo mapa idealmente lo que nosotros vamos a querer hacer es mapear este objeto para que nosotros podamos usar la anotación de punto es decir Pokemon punto para que sea mucho más fácil y obviamente tener un tipado estricto que nos ayude a saber
qué tipos de información tenemos entonces antes de terminar la clase vamos a copiar todo el código que tenemos aquí regresemos a visual Studio code voy a crear el 03 guión bajo podemos ponerle Maps punto Dad enterpe en el código y lo dejamos ahí como un respaldo revisemos a darparense todo y lo veo en el siguiente vídeo Solo que antes de terminar y un mensaje si ustedes ven errores aquí o les dice que no encuentra O sea que le instalen algo a visual Studio code para poder entender la sintaxis de edad no se preocupen mucho por
eso ya vamos a hacer la configuración de flutter y dar para poder hacer todo estas pruebas localmente Esto no es más que un mero respaldo de nuestro código que eventualmente se los voy a facilitar en github para que ustedes no lo pierdan nunca ok o para que lo usan como respaldo punto Ok lo vamos a dejar así y nos vemos en la próxima clase