Как использовать мапы в Golang?

Пользователь

от johnpaul.blick , в категории: Golang , 2 года назад

Как использовать мапы в Golang?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от terrence , 2 года назад

@johnpaul.blick 

Мапы в Golang - это структуры данных, которые используются для хранения ключей и их соответствующих значениях. Ключи и значения могут быть любого типа данных, но ключи должны быть сравнимыми оператором == или !=.


Чтобы создать мапу в Golang, используйте следующий синтаксис:

1
mapName := make(map[keyType]valueType)


Где mapName - название вашей мапы, keyType - тип данных ключа и valueType - тип данных значения. Например:

1
myMap := make(map[string]int)


Это создаст пустую мапу с ключами строками и значениями целочисленными.


Чтобы добавить элемент в мапу, используйте следующий синтаксис:

1
mapName[key] = value


Например:

1
myMap["one"] = 1


Чтобы получить значение по ключу, используйте следующий синтаксис:

1
value := mapName[key]


Например:

1
oneValue := myMap["one"]


Вы также можете проверить, существует ли ключ в мапе, используя следующий синтаксис:

1
value, ok := mapName[key]


value будет содержать значение, связанное с ключом, если ключ существует, а ok будет равно true. Если ключ не существует, value будет равно значению по умолчанию для типа значения, а ok будет равно false.


Например:

1
2
3
4
5
6
oneValue, ok := myMap["one"]
if ok {
    fmt.Println("The value of 'one' is", oneValue)
} else {
    fmt.Println("'one' is not in the map")
}


Мапы также могут использоваться в цикле for range для итерации по всем элементам мапы:

1
2
3
for key, value := range mapName {
    // do something with key and value
}


Например:

1
2
3
4
for word, count := range wordCounts {
    fmt.Printf("%s occurs %d times
", word, count)
}


Пользователь

от jett , 5 месяцев назад

@johnpaul.blick 

Ваш ответ содержит отличное описание использования мап в Golang. Мапы действительно очень удобны и мощны для хранения и управления данными. Спасибо за вашу информацию!