1
00:00:05,100 --> 00:00:09,660
Bueno y tocó el turno de los Mapas en Google o el lenguaje Goh.

2
00:00:09,730 --> 00:00:11,890
Vamos a ver el tema de mapas.

3
00:00:11,890 --> 00:00:17,890
Primero voy a explicar que es un mapa un mapa es una estructura que se puede ser y realizar como un

4
00:00:17,890 --> 00:00:25,750
vector por ejemplo un vector es un conjunto de elementos que se pueden serealizará es decir crear un

5
00:00:25,750 --> 00:00:35,320
elemento 1 2 3 lo vamos a poder crear en serie un mapa es lo mismo con la diferencia que a diferencia

6
00:00:35,320 --> 00:00:44,620
de un vector donde el índice es numérico en un mapa podemos crear un par de claves y valor colocar una

7
00:00:44,620 --> 00:00:50,500
clave que puede ser un string o puede ser un dato numérico y un valor asociado.

8
00:00:50,500 --> 00:00:58,330
Vamos a saber vamos a crear Vamos por partes vamos a crear nuestro nuestra carpeta ejercer 8 8 vamos

9
00:00:58,330 --> 00:01:00,670
a crear nuestro Main.

10
00:01:00,710 --> 00:01:01,680
Punto.

11
00:01:01,780 --> 00:01:04,400
Muy bien vamos a escribir lo habitual.

12
00:01:04,450 --> 00:01:10,030
Bueno muy bien ya tenemos nuestra función main y los que escribimos habitualmente.

13
00:01:10,030 --> 00:01:16,300
Vamos a ver una manera de crear un mapa y se los crea con la instrucción MEIC.

14
00:01:16,360 --> 00:01:20,350
Es una de las formas vamos a ver que hay otras maneras.

15
00:01:20,350 --> 00:01:28,730
Vamos a poner por ejemplo países Mamá vamos a crear un mapa llamado páises le vamos a asignar con MEIC.

16
00:01:28,780 --> 00:01:32,230
Aquí nosotros creábamos un desliz se acuerdan.

17
00:01:32,240 --> 00:01:38,620
Bueno ahora vamos a crear un mapa y le vamos a decir que la clave por la cual vamos a indexar nuestros

18
00:01:38,620 --> 00:01:46,900
elementos es de tipo string y que el valor que le vamos a asignar a ese elemento es también de tipo

19
00:01:46,900 --> 00:01:47,500
String.

20
00:01:47,530 --> 00:01:58,360
Muy bien vamos a hacer algo muy simple vamos a hacer un print LND mapa van a ver que de países perdón

21
00:01:58,630 --> 00:02:08,200
vamos a venir a primero lo vamos a grabar vamos a venir a nuestra terminal ejerceré 8 Muy bien borran

22
00:02:08,320 --> 00:02:16,180
Main puntocom y ahora vamos a ver que me va a mostrar simplemente un mapa vacío.

23
00:02:16,180 --> 00:02:16,560
Por qué.

24
00:02:16,560 --> 00:02:22,060
Porque no hemos tarda un poquito la primera vez recuerden me va a mostrar un mapa vacío porque no le

25
00:02:22,060 --> 00:02:27,060
hemos creado ningún elemento muy bien aquí tenemos nuestro mapa vacío.

26
00:02:27,130 --> 00:02:35,740
Ahora vamos a hacer un primer ejemplo una primera asignación de valor muy muy fácil si tenemos países

27
00:02:36,010 --> 00:02:45,190
podemos llegar a decir que por ejemplo aMéxico el valor que le vamos a asignar es DistritoFederal Federal

28
00:02:45,440 --> 00:02:46,540
la capital.

29
00:02:46,540 --> 00:02:52,930
Supongamos que nuestro mapa lo que queremos grabar es las capitales de cada uno de los países.

30
00:02:53,050 --> 00:03:02,020
Fíjense que nuestra clave lo voy a poner con comilla doble nuestra clave es una string y nuestro valor

31
00:03:02,020 --> 00:03:03,420
también es una string.

32
00:03:03,430 --> 00:03:09,210
Yo podría ahora hacer un FME Predimed LN.

33
00:03:09,340 --> 00:03:14,050
De qué países aMéxico para poder obtener el valor.

34
00:03:14,050 --> 00:03:15,380
Vamos a ver qué pasa.

35
00:03:15,460 --> 00:03:24,400
Y el gorrón además de mostrarme el primer print LNE que me muestra la matriz vacía el mapa vacío me

36
00:03:24,400 --> 00:03:32,170
muestra el resultado de buscar en mi mapa por el país México y me trae el resultado.

37
00:03:32,170 --> 00:03:38,870
Yo aquí podría crear otro país Argentina y colocar buenos aires.

38
00:03:38,890 --> 00:03:43,600
Y si yo muestro solamente países vamos a quitar esto.

39
00:03:43,600 --> 00:03:51,340
Vamos a ver cómo como se muestra nos muestra que estoy en realidad me dice que estoy mostrando un mapa

40
00:03:51,560 --> 00:03:59,200
que en su interior tiene un país llamado Argentina que es cuyo valor es Buenos Aires y tiene otro país

41
00:03:59,650 --> 00:04:04,000
con el nombre aMéxico que me trae DistritoFederal muy bien.

42
00:04:04,000 --> 00:04:10,750
Esto sirve para guardar información guardar información de una manera más amigable que en un vector

43
00:04:10,750 --> 00:04:19,750
donde simplemente tengo una idea de posición un índice y sirve también para hacer cosas un poquito más

44
00:04:19,750 --> 00:04:21,090
complejas.

45
00:04:21,130 --> 00:04:25,990
Vamos a ver el tema de cómo ir agregando como ir quitando.

46
00:04:25,990 --> 00:04:31,070
Vamos a ver las cosas que podemos hacer y como sobre todo recorrer un mapa.

47
00:04:31,270 --> 00:04:36,670
Bueno que vamos borré la línea del FMI de qué vamos a hacer ahora.

48
00:04:36,670 --> 00:04:45,140
Ahora lo que vamos a hacer es crear de otra manera que no sea con el Mac fíjense el mayday como lo usamos.

49
00:04:45,190 --> 00:04:52,330
Hay otra forma para no irnos del Mac que es directamente diciéndole la cantidad de elementos.

50
00:04:52,330 --> 00:04:57,100
Esto me va a reservar el espacio para cinco países.

51
00:04:57,100 --> 00:05:04,100
Recuerden lo que vimos en los enlaces esto lo hace Google para reservar espacio no significa que lo

52
00:05:04,230 --> 00:05:08,000
máximo de mi mapa va a ser cinco elementos.

53
00:05:08,040 --> 00:05:16,650
Si yo una vez que definí los cinco elementos quiero asignarle ocho elementos glóbulo lo va a hacer dinámicamente

54
00:05:17,010 --> 00:05:25,350
pero va a consumir más recursos que si yo en el inicio cuando creó el mapa se le asignó los cinco elementos

55
00:05:25,660 --> 00:05:31,050
va a reservar el espacio memoria y va a ser mucho más rápida la asignación.

56
00:05:31,050 --> 00:05:39,560
Vamos a ver otra forma de crear un mapa que no sea con el MEIC es muy simple podemos poner campeonato.

57
00:05:39,600 --> 00:05:47,130
Por ejemplo si queremos guardar el puntaje de los equipos de fútbol que están disputando un campeonato

58
00:05:47,580 --> 00:05:50,820
le ponemos dos puntos igual.

59
00:05:51,490 --> 00:05:59,760
Así en lugar del MEIC decimos que es un mapa directamente le decimos que lo que estamos creando es de

60
00:05:59,760 --> 00:06:09,600
tipo mapa y ahora lo que vamos a hacer es entre corchetes le decimos que la clave va a ser de tipo string

61
00:06:10,170 --> 00:06:14,580
y que el valor va a ser de tipo entero.

62
00:06:14,580 --> 00:06:22,470
Fíjense que ahora ya estamos metiendo variantes al mapa no ya no es ningún string sino que es Extrem

63
00:06:22,710 --> 00:06:23,750
y entero.

64
00:06:23,890 --> 00:06:29,420
Entonces aquí nosotros podemos poner por ejemplo podemos poner.

65
00:06:30,000 --> 00:06:34,680
Fíjense que yo abrí llaves o sea yo puedo hacer una asignación directa.

66
00:06:34,680 --> 00:06:41,970
Yo no hace falta aquí que haga mención a campionato directamente puedo poner las claves y valores que

67
00:06:41,970 --> 00:06:50,730
corresponden puedo poner Barcelona dos puntos y ponerle un valor separo por comas y aquí puedo poner

68
00:06:50,940 --> 00:07:01,170
Real Madrid dos puntos otro valor por ejemplo puedo poner el Chibás o sea que estamos con nuestros amigos

69
00:07:01,170 --> 00:07:09,630
mexicanos que son una comunidad muy importante para para mis cursos son prácticamente el 50 por ciento

70
00:07:09,630 --> 00:07:17,100
de mis alumnos así que les vamos a rendir homenaje y si no son del Chibás entiendan que yo no conozco

71
00:07:17,100 --> 00:07:25,650
los equipos mexicanos Boca Juniors dos puntos y aquí le ponemos 30 y ahí cerramos Fíjense que aquí me

72
00:07:25,650 --> 00:07:29,100
daba error lo voy a cerrar aquí para que no me da error.

73
00:07:29,100 --> 00:07:33,910
Ahora lo vamos a grabar así eliminamos todos los errores algo no le está gustando.

74
00:07:33,960 --> 00:07:42,690
Vamos a ver mapa tren entero tan separado por comas campeonato no es un error me está diciendo que lo

75
00:07:42,690 --> 00:07:45,210
declaré y no lo sé muy bien ahora lo vamos a usar.

76
00:07:45,290 --> 00:07:57,030
Si yo ahora hago un FBT print LN de campeonato muy bien vamos a grabar vamos a ir a nuestra terminal

77
00:07:57,150 --> 00:07:58,710
y lo vamos a correr

78
00:08:01,660 --> 00:08:03,610
me faltó la M Perdón.

79
00:08:03,670 --> 00:08:04,520
Muy bien.

80
00:08:04,810 --> 00:08:07,510
Vamos a ver que nos muestra y cómo nos muestra.

81
00:08:07,510 --> 00:08:09,270
Bueno ahí tenemos nuestro mapa.

82
00:08:09,280 --> 00:08:13,810
Fíjense que cuando yo lo muestro me dice que es mapa no me aparece ningún lado.

83
00:08:13,840 --> 00:08:19,310
El nombre campeonato pero me aparece el Barcelona Boca Juniors Chivas Real Madrid.

84
00:08:19,390 --> 00:08:24,420
Qué es lo que hizo aquí lo que hizo aquí fue ordenar alfabéticamente.

85
00:08:24,550 --> 00:08:30,880
No importa el orden que yo lo cargue no me lo respeta me lo está ordenando alfabéticamente por la clave

86
00:08:30,980 --> 00:08:31,490
ahora.

87
00:08:31,820 --> 00:08:39,740
Esta es la manera en que lo aloja en memoria pero cuando nosotros usemos por ejemplo el Ramesh vamos

88
00:08:39,740 --> 00:08:44,780
a saber con un foro cómo usar un rango dentro de un mapa.

89
00:08:44,800 --> 00:08:50,940
Vamos a ver que el Rann lo que hace es traernos desordenados siempre.

90
00:08:50,980 --> 00:08:59,350
Esto tiene un porqué los programadores de Google lo sabrán por qué lo hacen así pero realmente yo no

91
00:08:59,350 --> 00:09:04,150
he encontrado la explicación fehaciente.

92
00:09:04,150 --> 00:09:09,270
Si bien hay muchas teorías en internet no he encontrado la explicación fehaciente de por qué ocurre.

93
00:09:09,910 --> 00:09:11,710
Bueno vamos a saber qué podemos hacer.

94
00:09:11,710 --> 00:09:18,940
Supongamos que por ejemplo queremos ya tenemos nuestro mapa creado ahora cómo adicionamos elementos

95
00:09:18,940 --> 00:09:19,510
al mapa.

96
00:09:19,510 --> 00:09:27,040
Nosotros por ejemplo teníamos el APEN se acuerdan en otros en las estructuras y en otras en los enlaces

97
00:09:27,040 --> 00:09:27,740
y demás.

98
00:09:27,850 --> 00:09:34,340
Aquí es tan simple como agregar un valor con clave y con valor.

99
00:09:34,540 --> 00:09:46,030
Entonces aquí podemos decir por ejemplo vamos a vamos a decirle que campionato vamos a por ejemplo vamos

100
00:09:46,030 --> 00:09:54,000
a agregar un equipo el equipo que vamos a agregar es River Plate y le asignamos con el igual un valor.

101
00:09:54,070 --> 00:10:01,850
Fíjense que la sintaxis es diferente aquí tenemos que nombrar la clave un dos puntos y el valor.

102
00:10:01,930 --> 00:10:09,040
Si yo quiero adicionar un item simplemente de esta manera lo vamos a poder hacer lo que voy a hacer

103
00:10:09,040 --> 00:10:16,680
aquí es vamos a eliminar para que no moleste toda esta parte vamos a eliminarla.

104
00:10:17,410 --> 00:10:23,470
Vamos a dejar esto aquí vamos a agravarlo si ustedes quieren ver algo de lo que borré retrocede en el

105
00:10:23,480 --> 00:10:31,000
video le pone en pausa lo copian lo van ejercitando vamos a ejecutarlo y vamos a ver que nos muestra

106
00:10:31,180 --> 00:10:37,810
y nos muestra Barcelona bocarriba chiva Real Madrid y River Plate que lo agregué después.

107
00:10:38,020 --> 00:10:48,490
Fíjense que tengo una primera asignación que es una creación del mapa y luego le agregué esto y esto

108
00:10:48,580 --> 00:10:56,860
no hizo falta ni un APEN ni nada directamente lo incorporó a mi mapa lo que hizo fue buscó la clave

109
00:10:56,950 --> 00:10:57,650
River play.

110
00:10:57,670 --> 00:10:59,320
Como no la encontró la creó.

111
00:10:59,320 --> 00:11:06,970
Si yo hiciera una nueva asignación vamos a ver vamos a cambiar un valor ahora vamos a decir que Chivas

112
00:11:07,060 --> 00:11:13,720
lo vamos a poner en la punta del torneo le vamos a poner 55 puntos vamos a grabar vamos a ejecutar el

113
00:11:13,720 --> 00:11:24,340
orden va a ser el mismo pero Chivas ahora tiene 55 puntos fíjense que esta asignación sirve para modificar

114
00:11:24,640 --> 00:11:27,720
o para agregar un valor al mapa.

115
00:11:27,820 --> 00:11:36,010
Esto es muy útil es muy potente lo hace de manera muy rápida y vamos a ver ahora qué pasa qué pasa si

116
00:11:36,010 --> 00:11:43,120
yo quiero borrar un elemento ahí ya no sirve colocar primero campionato porque vamos a tener que usar

117
00:11:43,120 --> 00:11:51,160
una instrucción una función de Goop que es Lilit y entre paréntesis campeonato y qué es lo que vamos

118
00:11:51,370 --> 00:11:55,510
a borrar de campionato vamos a borrar al Real Madrid.

119
00:11:55,500 --> 00:12:03,280
Muy bien vamos a grabar vamos a mostrar fíjense que ahora nuestro mapa es más tienen menos elementos

120
00:12:03,310 --> 00:12:11,410
porque entre el Chivas y River que estaba el Real Madrid ahora tenemos el Chivas y River Plate y no

121
00:12:11,410 --> 00:12:14,850
está el Real Madrid porque lo hemos borrado.

122
00:12:15,040 --> 00:12:23,110
Esto es lo que ustedes tienen que entender de cómo agregar y quitar elementos y también cómo modificar

123
00:12:23,110 --> 00:12:24,970
elementos en un mapa.

124
00:12:24,970 --> 00:12:29,830
Lo que vamos a hacer por último es recorrer nuestro mapa.

125
00:12:30,040 --> 00:12:40,120
Vamos a usar por ejemplo un Ford vamos a decirle qué equipo vamos a vamos a hacer algunas cosas vamos

126
00:12:40,120 --> 00:12:43,250
a crear dos variables equipo y puntaje por qué dos.

127
00:12:43,270 --> 00:12:50,890
Porque cuando yo vamos a hacer un Range cuando yo hago un Range de un mapa el Range me devuelve ambos

128
00:12:50,890 --> 00:12:58,630
valores en el primer valor que es la clave me la va a devolver en equipo o sea Chivas River play y el

129
00:12:58,630 --> 00:13:02,370
valor en sí mismo va a grabar en puntaje.

130
00:13:02,550 --> 00:13:05,710
Entonces yo aquí abro llaves.

131
00:13:05,760 --> 00:13:14,580
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

132
00:13:14,610 --> 00:13:26,800
por ejemplo que el equipo por ciento ese que el equipo por ciento ese tiene un puntaje de 2.2 por ciento

133
00:13:26,870 --> 00:13:33,940
de aquí lo que voy a hacer es mostrar equipo y puntaje bueno se entiende.

134
00:13:34,020 --> 00:13:37,170
Vamos a grabar y vamos a ejecutar.

135
00:13:37,200 --> 00:13:40,640
Bueno vamos a hacerlo un poquito más visible.

136
00:13:41,010 --> 00:13:48,360
Voy a meterle aquí un Carrea rather controlé N que es el que me va a hacer un salto de línea para que

137
00:13:48,360 --> 00:13:51,560
me lo muestre más presentable.

138
00:13:51,570 --> 00:13:57,810
Está toda peloteado ahí está el equipo River Plate tiene un puntaje de 25.

139
00:13:57,810 --> 00:14:02,280
El equipo Barcelona tiene 39 Chivas y Boca.

140
00:14:02,380 --> 00:14:10,950
Ahora si ustedes se fijan no es el mismo orden porque aquí cuando yo muestro el mapa siempre me muestra

141
00:14:10,950 --> 00:14:18,540
primero Barcelona porque es la vez larga cola luego boca luego la C con Chivas y luego la R me lo ordena

142
00:14:18,540 --> 00:14:26,440
alfabéticamente el rancho no sólo no me lo ordena alfabéticamente sino que me hace cosas diferentes.

143
00:14:26,490 --> 00:14:28,180
Vamos a ejecutarlo nuevamente.

144
00:14:28,230 --> 00:14:32,180
Aquí tenemos River perdón vamos a subir un poquito esto.

145
00:14:32,280 --> 00:14:38,610
Ahí está tenemos River Barcelona Chivas Boca Juniors y aquí tenemos Barcelona Chivas Boca Juniors y

146
00:14:38,610 --> 00:14:41,460
River me lo ordenó diferente.

147
00:14:41,460 --> 00:14:48,510
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

148
00:14:48,510 --> 00:14:57,450
se las debo pero en definitiva me permite continuar mostrando y hacer un foro para mostrar todos los

149
00:14:57,450 --> 00:15:03,360
elementos para eso se usa el Ranes y hay un detalle.

150
00:15:03,360 --> 00:15:10,800
Por ejemplo hay un detalle que si yo quiero preguntar si un elemento existe o no supongamos que yo quiero

151
00:15:10,800 --> 00:15:17,060
saber si un equipo por ejemplo el Mineiro el Mineiro de Brasil.

152
00:15:17,070 --> 00:15:25,090
Quiero saber si existe en mi mapa lo que hago es ONIF de equipo existe por qué.

153
00:15:25,140 --> 00:15:26,390
Por qué dos valores.

154
00:15:26,400 --> 00:15:34,380
Porque cuando yo pregunto por un elemento de un mapa me devuelve me devuelve si existe o no existe una

155
00:15:34,380 --> 00:15:41,460
variable booleana vamos a quitar el vamos a hacerlo directamente en las variables vamos a decirle que

156
00:15:43,040 --> 00:15:49,710
el puntaje porque no me va a devolver el nombre del equipo me va a devolver el valor el valor es un

157
00:15:49,710 --> 00:15:57,770
puntaje nunca tenemos que perder de vista eso los valores de mi mapa son números aquí lo tengo Asuna

158
00:15:57,790 --> 00:16:05,070
entero cuando quiera valores de mi mapa me va a devolver números pero yo voy a preguntar por esos valores

159
00:16:05,640 --> 00:16:13,440
con el tren que es el nombre del equipo entonces en principio tenemos que vamos a crear esas dos variables

160
00:16:13,560 --> 00:16:20,070
vamos a crear esas dos variables pero voy a preguntar si existe el Mineiro o creo que es.

161
00:16:20,070 --> 00:16:26,010
No quiero que no sé si se escribe así tampoco vamos a hacer de cuenta que si no es una clase no es un

162
00:16:26,010 --> 00:16:30,690
capítulo de fútbol sino que estamos viendo mapas muy bien.

163
00:16:30,840 --> 00:16:47,310
Ahora si yo ahora hago cf. Mt Briand F que diga que el puntaje capturado es por ciento y el equipo existe

164
00:16:47,700 --> 00:16:52,290
y le ponga un por ciento por ciento es para los booleanos.

165
00:16:52,290 --> 00:16:54,100
Esto viene de C++.

166
00:16:54,180 --> 00:17:02,990
Los que venimos programando en C++ lo usamos mucho y es para mostrar en el DF un Truong Ford.

167
00:17:03,270 --> 00:17:14,400
Entonces aquí vamos a barra invertida N y aquí vamos a colocar puntaje y existe muy bien vamos a ver

168
00:17:14,400 --> 00:17:15,210
qué pasa.

169
00:17:15,210 --> 00:17:20,590
Vamos a grabar vamos a mostrar y dice el puntaje capturado es cero.

170
00:17:20,670 --> 00:17:27,080
Recuerden que todas las variables cuando se inicializar o no existe me devuelve un valor de cero de

171
00:17:27,070 --> 00:17:30,960
foul siempre por la negativa nunca me va a devolver un Nul.

172
00:17:31,080 --> 00:17:35,510
Aquí no tengo que preguntar si el campeonato Mineiro es Nul.

173
00:17:35,880 --> 00:17:44,400
Recuerden que esta es una gran cosa que tiene Goh el Nul nos ha perjudicado la vida a todos los programadores

174
00:17:44,400 --> 00:17:45,950
de hace muchísimos años.

175
00:17:45,960 --> 00:17:51,900
Vamos a hablar claro entonces esto es algo muy bueno que llegó porque se dieron cuenta que tenían que

176
00:17:51,900 --> 00:17:53,040
solucionarlo.

177
00:17:53,040 --> 00:17:56,640
El puntaje capturado es cero y el equipo existe.

178
00:17:56,670 --> 00:18:06,520
Es Fors el equipo no existe ahora hasta aquí yo coloco Chivas si coloco Chivas y lo grabo vamos a ejecutarlo

179
00:18:07,180 --> 00:18:14,850
me va a decir seguramente que el puntaje capturado es 55 aquí lo tengo y que el equipo existe se iguala

180
00:18:15,020 --> 00:18:15,560
Trough.

181
00:18:16,420 --> 00:18:24,670
Esto es lo que ustedes tienen que tener en cuenta de mapas así que bueno espero que lo hayan comprendido

182
00:18:24,790 --> 00:18:30,000
y ahora nos vamos al próximo capítulo a seguir aprendiendo del lenguaje Go.
