51 lines
2.0 KiB
Go
51 lines
2.0 KiB
Go
// Карты - это встроенный [ассоциативный тип данных](http://en.wikipedia.org/wiki/Associative_array)
|
||
// Go (иногда называемый _хешами_).
|
||
|
||
package main
|
||
|
||
import "fmt"
|
||
|
||
func main() {
|
||
|
||
// Для создания пустой карты, используйте `make`:
|
||
// `make(map[key-type]val-type)`.
|
||
m := make(map[string]int)
|
||
|
||
// Вы можете установить пару ключ/значение
|
||
// используя привычный синтаксис `name[key] = val`
|
||
m["k1"] = 7
|
||
m["k2"] = 13
|
||
|
||
// Вывод карты на экран с помощью `fmt.Println`
|
||
// выведет все пары ключ/значение
|
||
fmt.Println("map:", m)
|
||
|
||
// Получить значение по ключу `name[key]`.
|
||
v1 := m["k1"]
|
||
fmt.Println("v1: ", v1)
|
||
|
||
// Встроенная функция `len` возвращает количество
|
||
// пар ключ/значение для карты.
|
||
fmt.Println("len:", len(m))
|
||
|
||
// Встроенная функция `delete` удаляет пару key/value
|
||
// из карты.
|
||
delete(m, "k2")
|
||
fmt.Println("map:", m)
|
||
|
||
// Необязательное второе возвращаемое значение
|
||
// из карты сообщает о том, существовал ли ключ в карте.
|
||
// Это может быть использовано для устранения
|
||
// неоднозначности между отсутствующими ключами и
|
||
// ключами с нулевыми значениями, такими как 0 или
|
||
// "". Здесь нам не нужно само значение, поэтому
|
||
// мы проигнорировали его с пустым идентификатором _.
|
||
_, prs := m["k2"]
|
||
fmt.Println("prs:", prs)
|
||
|
||
// Вы можете объявить и наполнить карту в одной
|
||
// строке с помощью подобного синтаксиса.
|
||
n := map[string]int{"foo": 1, "bar": 2}
|
||
fmt.Println("map:", n)
|
||
}
|