Публикации - Go

Типы данных - Составные типы данных - Карты

Как массивы, так и срезы позволяют использовать в качестве индексов только целые положительные числа.

Карты (или хеш-таблицы) — эффективные структуры данных, поскольку позволяют использовать индексы различных типов данных в качестве ключей. Практическое эмпирическое правило заключается в том, что вы должны использовать карту, когда вам нужны индексы, не являющиеся целыми положительными числами, или когда целочисленные индексы разделены большими интервалами.

Возможность создавать индексы любого типа позволяет искать элементы и получать к ним доступ на основе заданного ключа или, в более сложных ситуациях, комбинации ключей.

Если необходимо создать карту, используя литерал карты, то можно сделать так:

m := map[string]int {
"key1": -1
"key2": 123
}

Порядок элементов в карте рэндомизирован. Это значит, что найти элемент в карте мы можем либо по ключу либо по значению, но не по номеру элемента.

Получить длину карты, которая представляет собой количество ключей в карте, можно используя функцию len()‚ работающую также с массивами и срезами. Вы можете удалить пару «ключ — значение» из карты, используя функцию delete(), которая принимает два аргумента: имя карты и название ключа, именно в таком порядке.

Объединяясь с ключевым словом range, цикл for реализует функциональность циклов foreach из других языков программирования и позволяет выполнять итерации по всем элементам карты, не зная ее размера или ключей.

package main

import "fmt"

func main() {
	// range works with maps as well
	aMap := make(map[string]string)
	aMap["123"] = "456"
	aMap["key"] = "A value"
	for key, v := range aMap {
		fmt.Println("key:", key, "value:", v)
	}

	for _, v := range aMap {
		fmt.Print(" # ", v)
	}
	fmt.Println()
}

Количество комментариев: 0

Для того, чтобы оставить коментарий необходимо зарегистрироваться