Bueno y tocó el turno de los Mapas en Google o el lenguaje Goh.
Vamos a ver el tema de mapas.
Primero voy a explicar que es un mapa un mapa es una estructura que se puede ser y realizar como un
vector por ejemplo un vector es un conjunto de elementos que se pueden serealizará es decir crear un
elemento 1 2 3 lo vamos a poder crear en serie un mapa es lo mismo con la diferencia que a diferencia
de un vector donde el índice es numérico en un mapa podemos crear un par de claves y valor colocar una
clave que puede ser un string o puede ser un dato numérico y un valor asociado.
Vamos a saber vamos a crear Vamos por partes vamos a crear nuestro nuestra carpeta ejercer 8 8 vamos
a crear nuestro Main.
Punto.
Muy bien vamos a escribir lo habitual.
Bueno muy bien ya tenemos nuestra función main y los que escribimos habitualmente.
Vamos a ver una manera de crear un mapa y se los crea con la instrucción MEIC.
Es una de las formas vamos a ver que hay otras maneras.
Vamos a poner por ejemplo países Mamá vamos a crear un mapa llamado páises le vamos a asignar con MEIC.
Aquí nosotros creábamos un desliz se acuerdan.
Bueno ahora vamos a crear un mapa y le vamos a decir que la clave por la cual vamos a indexar nuestros
elementos es de tipo string y que el valor que le vamos a asignar a ese elemento es también de tipo
String.
Muy bien vamos a hacer algo muy simple vamos a hacer un print LND mapa van a ver que de países perdón
vamos a venir a primero lo vamos a grabar vamos a venir a nuestra terminal ejerceré 8 Muy bien borran
Main puntocom y ahora vamos a ver que me va a mostrar simplemente un mapa vacío.
Por qué.
Porque no hemos tarda un poquito la primera vez recuerden me va a mostrar un mapa vacío porque no le
hemos creado ningún elemento muy bien aquí tenemos nuestro mapa vacío.
Ahora vamos a hacer un primer ejemplo una primera asignación de valor muy muy fácil si tenemos países
podemos llegar a decir que por ejemplo aMéxico el valor que le vamos a asignar es DistritoFederal Federal
la capital.
Supongamos que nuestro mapa lo que queremos grabar es las capitales de cada uno de los países.
Fíjense que nuestra clave lo voy a poner con comilla doble nuestra clave es una string y nuestro valor
también es una string.
Yo podría ahora hacer un FME Predimed LN.
De qué países aMéxico para poder obtener el valor.
Vamos a ver qué pasa.
Y el gorrón además de mostrarme el primer print LNE que me muestra la matriz vacía el mapa vacío me
muestra el resultado de buscar en mi mapa por el país México y me trae el resultado.
Yo aquí podría crear otro país Argentina y colocar buenos aires.
Y si yo muestro solamente países vamos a quitar esto.
Vamos a ver cómo como se muestra nos muestra que estoy en realidad me dice que estoy mostrando un mapa
que en su interior tiene un país llamado Argentina que es cuyo valor es Buenos Aires y tiene otro país
con el nombre aMéxico que me trae DistritoFederal muy bien.
Esto sirve para guardar información guardar información de una manera más amigable que en un vector
donde simplemente tengo una idea de posición un índice y sirve también para hacer cosas un poquito más
complejas.
Vamos a ver el tema de cómo ir agregando como ir quitando.
Vamos a ver las cosas que podemos hacer y como sobre todo recorrer un mapa.
Bueno que vamos borré la línea del FMI de qué vamos a hacer ahora.
Ahora lo que vamos a hacer es crear de otra manera que no sea con el Mac fíjense el mayday como lo usamos.
Hay otra forma para no irnos del Mac que es directamente diciéndole la cantidad de elementos.
Esto me va a reservar el espacio para cinco países.
Recuerden lo que vimos en los enlaces esto lo hace Google para reservar espacio no significa que lo
máximo de mi mapa va a ser cinco elementos.
Si yo una vez que definí los cinco elementos quiero asignarle ocho elementos glóbulo lo va a hacer dinámicamente
pero va a consumir más recursos que si yo en el inicio cuando creó el mapa se le asignó los cinco elementos
va a reservar el espacio memoria y va a ser mucho más rápida la asignación.
Vamos a ver otra forma de crear un mapa que no sea con el MEIC es muy simple podemos poner campeonato.
Por ejemplo si queremos guardar el puntaje de los equipos de fútbol que están disputando un campeonato
le ponemos dos puntos igual.
Así en lugar del MEIC decimos que es un mapa directamente le decimos que lo que estamos creando es de
tipo mapa y ahora lo que vamos a hacer es entre corchetes le decimos que la clave va a ser de tipo string
y que el valor va a ser de tipo entero.
Fíjense que ahora ya estamos metiendo variantes al mapa no ya no es ningún string sino que es Extrem
y entero.
Entonces aquí nosotros podemos poner por ejemplo podemos poner.
Fíjense que yo abrí llaves o sea yo puedo hacer una asignación directa.
Yo no hace falta aquí que haga mención a campionato directamente puedo poner las claves y valores que
corresponden puedo poner Barcelona dos puntos y ponerle un valor separo por comas y aquí puedo poner
Real Madrid dos puntos otro valor por ejemplo puedo poner el Chibás o sea que estamos con nuestros amigos
mexicanos que son una comunidad muy importante para para mis cursos son prácticamente el 50 por ciento
de mis alumnos así que les vamos a rendir homenaje y si no son del Chibás entiendan que yo no conozco
los equipos mexicanos Boca Juniors dos puntos y aquí le ponemos 30 y ahí cerramos Fíjense que aquí me
daba error lo voy a cerrar aquí para que no me da error.
Ahora lo vamos a grabar así eliminamos todos los errores algo no le está gustando.
Vamos a ver mapa tren entero tan separado por comas campeonato no es un error me está diciendo que lo
declaré y no lo sé muy bien ahora lo vamos a usar.
Si yo ahora hago un FBT print LN de campeonato muy bien vamos a grabar vamos a ir a nuestra terminal
y lo vamos a correr
me faltó la M Perdón.
Muy bien.
Vamos a ver que nos muestra y cómo nos muestra.
Bueno ahí tenemos nuestro mapa.
Fíjense que cuando yo lo muestro me dice que es mapa no me aparece ningún lado.
El nombre campeonato pero me aparece el Barcelona Boca Juniors Chivas Real Madrid.
Qué es lo que hizo aquí lo que hizo aquí fue ordenar alfabéticamente.
No importa el orden que yo lo cargue no me lo respeta me lo está ordenando alfabéticamente por la clave
ahora.
Esta es la manera en que lo aloja en memoria pero cuando nosotros usemos por ejemplo el Ramesh vamos
a saber con un foro cómo usar un rango dentro de un mapa.
Vamos a ver que el Rann lo que hace es traernos desordenados siempre.
Esto tiene un porqué los programadores de Google lo sabrán por qué lo hacen así pero realmente yo no
he encontrado la explicación fehaciente.
Si bien hay muchas teorías en internet no he encontrado la explicación fehaciente de por qué ocurre.
Bueno vamos a saber qué podemos hacer.
Supongamos que por ejemplo queremos ya tenemos nuestro mapa creado ahora cómo adicionamos elementos
al mapa.
Nosotros por ejemplo teníamos el APEN se acuerdan en otros en las estructuras y en otras en los enlaces
y demás.
Aquí es tan simple como agregar un valor con clave y con valor.
Entonces aquí podemos decir por ejemplo vamos a vamos a decirle que campionato vamos a por ejemplo vamos
a agregar un equipo el equipo que vamos a agregar es River Plate y le asignamos con el igual un valor.
Fíjense que la sintaxis es diferente aquí tenemos que nombrar la clave un dos puntos y el valor.
Si yo quiero adicionar un item simplemente de esta manera lo vamos a poder hacer lo que voy a hacer
aquí es vamos a eliminar para que no moleste toda esta parte vamos a eliminarla.
Vamos a dejar esto aquí vamos a agravarlo si ustedes quieren ver algo de lo que borré retrocede en el
video le pone en pausa lo copian lo van ejercitando vamos a ejecutarlo y vamos a ver que nos muestra
y nos muestra Barcelona bocarriba chiva Real Madrid y River Plate que lo agregué después.
Fíjense que tengo una primera asignación que es una creación del mapa y luego le agregué esto y esto
no hizo falta ni un APEN ni nada directamente lo incorporó a mi mapa lo que hizo fue buscó la clave
River play.
Como no la encontró la creó.
Si yo hiciera una nueva asignación vamos a ver vamos a cambiar un valor ahora vamos a decir que Chivas
lo vamos a poner en la punta del torneo le vamos a poner 55 puntos vamos a grabar vamos a ejecutar el
orden va a ser el mismo pero Chivas ahora tiene 55 puntos fíjense que esta asignación sirve para modificar
o para agregar un valor al mapa.
Esto es muy útil es muy potente lo hace de manera muy rápida y vamos a ver ahora qué pasa qué pasa si
yo quiero borrar un elemento ahí ya no sirve colocar primero campionato porque vamos a tener que usar
una instrucción una función de Goop que es Lilit y entre paréntesis campeonato y qué es lo que vamos
a borrar de campionato vamos a borrar al Real Madrid.
Muy bien vamos a grabar vamos a mostrar fíjense que ahora nuestro mapa es más tienen menos elementos
porque entre el Chivas y River que estaba el Real Madrid ahora tenemos el Chivas y River Plate y no
está el Real Madrid porque lo hemos borrado.
Esto es lo que ustedes tienen que entender de cómo agregar y quitar elementos y también cómo modificar
elementos en un mapa.
Lo que vamos a hacer por último es recorrer nuestro mapa.
Vamos a usar por ejemplo un Ford vamos a decirle qué equipo vamos a vamos a hacer algunas cosas vamos
a crear dos variables equipo y puntaje por qué dos.
Porque cuando yo vamos a hacer un Range cuando yo hago un Range de un mapa el Range me devuelve ambos
valores en el primer valor que es la clave me la va a devolver en equipo o sea Chivas River play y el
valor en sí mismo va a grabar en puntaje.
Entonces yo aquí abro llaves.
Recuerden que la llave tiene que estar en la misma línea y aquí voy a hacer un FFT print F y voy a decir
por ejemplo que el equipo por ciento ese que el equipo por ciento ese tiene un puntaje de 2.2 por ciento
de aquí lo que voy a hacer es mostrar equipo y puntaje bueno se entiende.
Vamos a grabar y vamos a ejecutar.
Bueno vamos a hacerlo un poquito más visible.
Voy a meterle aquí un Carrea rather controlé N que es el que me va a hacer un salto de línea para que
me lo muestre más presentable.
Está toda peloteado ahí está el equipo River Plate tiene un puntaje de 25.
El equipo Barcelona tiene 39 Chivas y Boca.
Ahora si ustedes se fijan no es el mismo orden porque aquí cuando yo muestro el mapa siempre me muestra
primero Barcelona porque es la vez larga cola luego boca luego la C con Chivas y luego la R me lo ordena
alfabéticamente el rancho no sólo no me lo ordena alfabéticamente sino que me hace cosas diferentes.
Vamos a ejecutarlo nuevamente.
Aquí tenemos River perdón vamos a subir un poquito esto.
Ahí está tenemos River Barcelona Chivas Boca Juniors y aquí tenemos Barcelona Chivas Boca Juniors y
River me lo ordenó diferente.
Esto es lo que hace el Ranes que yo les decía que no tenía idea cuál era la utilidad realmente esa explicación
se las debo pero en definitiva me permite continuar mostrando y hacer un foro para mostrar todos los
elementos para eso se usa el Ranes y hay un detalle.
Por ejemplo hay un detalle que si yo quiero preguntar si un elemento existe o no supongamos que yo quiero
saber si un equipo por ejemplo el Mineiro el Mineiro de Brasil.
Quiero saber si existe en mi mapa lo que hago es ONIF de equipo existe por qué.
Por qué dos valores.
Porque cuando yo pregunto por un elemento de un mapa me devuelve me devuelve si existe o no existe una
variable booleana vamos a quitar el vamos a hacerlo directamente en las variables vamos a decirle que
el puntaje porque no me va a devolver el nombre del equipo me va a devolver el valor el valor es un
puntaje nunca tenemos que perder de vista eso los valores de mi mapa son números aquí lo tengo Asuna
entero cuando quiera valores de mi mapa me va a devolver números pero yo voy a preguntar por esos valores
con el tren que es el nombre del equipo entonces en principio tenemos que vamos a crear esas dos variables
vamos a crear esas dos variables pero voy a preguntar si existe el Mineiro o creo que es.
No quiero que no sé si se escribe así tampoco vamos a hacer de cuenta que si no es una clase no es un
capítulo de fútbol sino que estamos viendo mapas muy bien.
Ahora si yo ahora hago cf. Mt Briand F que diga que el puntaje capturado es por ciento y el equipo existe
y le ponga un por ciento por ciento es para los booleanos.
Esto viene de C++.
Los que venimos programando en C++ lo usamos mucho y es para mostrar en el DF un Truong Ford.
Entonces aquí vamos a barra invertida N y aquí vamos a colocar puntaje y existe muy bien vamos a ver
qué pasa.
Vamos a grabar vamos a mostrar y dice el puntaje capturado es cero.
Recuerden que todas las variables cuando se inicializar o no existe me devuelve un valor de cero de
foul siempre por la negativa nunca me va a devolver un Nul.
Aquí no tengo que preguntar si el campeonato Mineiro es Nul.
Recuerden que esta es una gran cosa que tiene Goh el Nul nos ha perjudicado la vida a todos los programadores
de hace muchísimos años.
Vamos a hablar claro entonces esto es algo muy bueno que llegó porque se dieron cuenta que tenían que
solucionarlo.
El puntaje capturado es cero y el equipo existe.
Es Fors el equipo no existe ahora hasta aquí yo coloco Chivas si coloco Chivas y lo grabo vamos a ejecutarlo
me va a decir seguramente que el puntaje capturado es 55 aquí lo tengo y que el equipo existe se iguala
Trough.
Esto es lo que ustedes tienen que tener en cuenta de mapas así que bueno espero que lo hayan comprendido
y ahora nos vamos al próximo capítulo a seguir aprendiendo del lenguaje Go.