80 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
		
		
			
		
	
	
			80 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
| 
								 | 
							
								---
							 | 
						||
| 
								 | 
							
								title: Go Maps
							 | 
						||
| 
								 | 
							
								localeTitle: Ir Mapas
							 | 
						||
| 
								 | 
							
								---
							 | 
						||
| 
								 | 
							
								## Ir Mapas
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								Un mapa, llamado _diccionario_ en otros idiomas, "asigna" claves a valores. Un mapa se declara así:
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								```go
							 | 
						||
| 
								 | 
							
								var m map[Key]Value 
							 | 
						||
| 
								 | 
							
								```
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								Este mapa no tiene claves y no se le pueden agregar claves. Para crear un mapa, usa la función `make` :
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								```go
							 | 
						||
| 
								 | 
							
								m = make(map[Key]Value) 
							 | 
						||
| 
								 | 
							
								```
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								Cualquier cosa puede ser usada como una clave o como un valor.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								### Modificando mapas
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								Aquí hay algunas acciones comunes con los mapas.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#### Insertando / Cambiando elementos
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								Crear o cambiar el elemento `foo` en el mapa `m` :
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								```go
							 | 
						||
| 
								 | 
							
								m["foo"] = bar 
							 | 
						||
| 
								 | 
							
								```
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#### Obteniendo elementos
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								Obtener elemento con clave `foo` en el mapa `m` :
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								```go
							 | 
						||
| 
								 | 
							
								element = m["foo"] 
							 | 
						||
| 
								 | 
							
								```
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#### Borrando elementos
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								Eliminar elemento con clave `foo` en el mapa `m` :
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								```go
							 | 
						||
| 
								 | 
							
								delete(m, "foo") 
							 | 
						||
| 
								 | 
							
								```
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#### Compruebe si se ha utilizado una clave
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								Compruebe si la clave `foo` se ha utilizado en el mapa `m` :
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								```go
							 | 
						||
| 
								 | 
							
								element, ok = m["foo"] 
							 | 
						||
| 
								 | 
							
								```
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								Si `ok` es `true` , la clave se ha utilizado y el `element` mantiene el valor en `m["foo"]` . Si `ok` es `false` , la clave no se ha utilizado y el `element` mantiene sus valores cero.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								### Mapa literales
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								Puedes crear literales de mapas directamente:
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								```go
							 | 
						||
| 
								 | 
							
								var m = map[string]bool{ 
							 | 
						||
| 
								 | 
							
								    "Go": true, 
							 | 
						||
| 
								 | 
							
								    "JavaScript":false, 
							 | 
						||
| 
								 | 
							
								 } 
							 | 
						||
| 
								 | 
							
								 
							 | 
						||
| 
								 | 
							
								 m["Go"] // true 
							 | 
						||
| 
								 | 
							
								 m["JavaScript"] = true // Set Javascript to true 
							 | 
						||
| 
								 | 
							
								 delete(m, "JavaScript") // Delete "JavaScript" key and value 
							 | 
						||
| 
								 | 
							
								 language, ok = m["C++"] // ok is false, language is bool's zero-value (false) 
							 | 
						||
| 
								 | 
							
								```
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#### Más información:
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								*   [Un tour de go](https://tour.golang.org/moretypes/19)
							 | 
						||
| 
								 | 
							
								*   [Ir por ejemplo](https://gobyexample.com/maps)
							 | 
						||
| 
								 | 
							
								*   [Libro de golang](https://www.golang-book.com/books/intro/6#section3)
							 | 
						||
| 
								 | 
							
								*   [La especificación del lenguaje de programación Go](https://golang.org/ref/spec#Making_slices_maps_and_channels)
							 |