Your Web News in One Place

Help Webnuz

Referal links:

Sign up for GreenGeeks web hosting
March 18, 2022 03:17 pm GMT

Go from the beginning - using maps

Go from the beginning - using maps

You will have scenarios when you code that there are things you need to look up. If you use a dictionary for example you might look up how you can translate a word from English to Spanish or vice versa. In programming, you have similar situations, maybe you want to know what service is run on a certain port for example. There's also databases that's based around the concept of having a unique key that points to a certain value.

How all this is implemented is via map structure. The idea is that you define a key and value and collect all those in a group, a map.

Creating a map

To create a map in Go, we need to use the following syntax:

map[<key type>]<value type>{ ... entries }

Here's an example of creating a map structure that could hold a phone book:

phonebook := map[int]string{ 555123: "Robin Hood", 555404: "Sheriff of Nottingham"}

We define a map structure with key type int and value type string. Then we assign it value with {}. Each entry is defined according <key>: <value> and separated by comma. So how do we read a value?

Create a map with make()

Another way to create a map us by using the make() function. make() returns a initialized map if you give it a type like so:

dictionaryEnSv = make(map[string]string)

Adding entries

To add entries to the map, you need to provide it with a key and value entry like so:

dictionaryEnSv["hello"] = "hej"

Read a value by key

Imagine now that we have these two entries, and you want the value given that you have then entry 555404, how would we do that? We use the square brackets like so []:

phonebook[555404] // "Sheriff of Nottingham"

Check for existing entry

So you learned that phonebook[555404] gives you a value back. What if it doesn't exist? What happens if you give it a key that's not stored in the map is that you get nothing back:

phonebook[888] //

There's a better way to check this, because accessing an entry with a key actually returns two values, the value, and a boolean. The boolean indicates if this key exists in the map. See this code:

_, exist phonebook[888]fmt.Println(exist) // false

You can even use this in an if statement:

if _, exist := phonebook[888] {  // number exist, call person}

Iterate over a map

We can iterate over a map with a for construct and a range. Here's how you can iterate:

for key, value := range phonebook {  fmt.Println(key, value)}

Delete an entry

To remove an entry from a map, you can use the delete() method. The delete() method takes the map and the key to delete as parameters, like so:

delete(phonebook, 555404)

Summary

We've learned what a map is and when to use it. Additionally, we've also learned how to create it, add values to it and read from it, both key by key and iterating over the whole map.


Original Link: https://dev.to/azure/go-from-the-beginning-using-maps-3fm9

Share this article:    Share on Facebook
View Full Article

Dev To

An online community for sharing and discovering great ideas, having debates, and making friends

More About this Source Visit Dev To