80 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
			
		
		
	
	
			80 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
| ---
 | ||
| title: Go Maps
 | ||
| localeTitle: Go Maps
 | ||
| ---
 | ||
| ## Go Maps
 | ||
| 
 | ||
| Карта, называемая _словарем_ на других языках, «сопоставляет» ключи с значениями. Карта объявляется следующим образом:
 | ||
| 
 | ||
| ```go
 | ||
| var m map[Key]Value 
 | ||
| ```
 | ||
| 
 | ||
| Эта карта не имеет ключей, и никакие клавиши не могут быть добавлены к ней. Чтобы создать карту, используйте функцию `make` :
 | ||
| 
 | ||
| ```go
 | ||
| m = make(map[Key]Value) 
 | ||
| ```
 | ||
| 
 | ||
| Все может использоваться как ключ или как значение.
 | ||
| 
 | ||
| ### Изменение карт
 | ||
| 
 | ||
| Вот некоторые общие действия с картами.
 | ||
| 
 | ||
| #### Вставка / изменение элементов
 | ||
| 
 | ||
| Создайте или измените элемент `foo` в map `m` :
 | ||
| 
 | ||
| ```go
 | ||
| m["foo"] = bar 
 | ||
| ```
 | ||
| 
 | ||
| #### Получение элементов
 | ||
| 
 | ||
| Получить элемент с ключом `foo` в map `m` :
 | ||
| 
 | ||
| ```go
 | ||
| element = m["foo"] 
 | ||
| ```
 | ||
| 
 | ||
| #### Удаление элементов
 | ||
| 
 | ||
| Удалить элемент с ключом `foo` в map `m` :
 | ||
| 
 | ||
| ```go
 | ||
| delete(m, "foo") 
 | ||
| ```
 | ||
| 
 | ||
| #### Проверьте, был ли ключ использован
 | ||
| 
 | ||
| Проверьте, используется ли ключ `foo` в map `m` :
 | ||
| 
 | ||
| ```go
 | ||
| element, ok = m["foo"] 
 | ||
| ```
 | ||
| 
 | ||
| Если `ok` `true` , ключ был использован, и `element` хранит значение в `m["foo"]` . Если `ok` является `false` , ключ не использовался, а `element` имеет свои нулевые значения.
 | ||
| 
 | ||
| ### Литералы карт
 | ||
| 
 | ||
| Вы можете напрямую создавать карты:
 | ||
| 
 | ||
| ```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) 
 | ||
| ```
 | ||
| 
 | ||
| #### Дополнительная информация:
 | ||
| 
 | ||
| *   [Экскурсия по Го](https://tour.golang.org/moretypes/19)
 | ||
| *   [По примеру](https://gobyexample.com/maps)
 | ||
| *   [Голанская книга](https://www.golang-book.com/books/intro/6#section3)
 | ||
| *   [Спецификация языка программирования Go](https://golang.org/ref/spec#Making_slices_maps_and_channels) |