DEV Community

Toul
Toul

Posted on • Originally published at automatetheboringstuffwithgo.com

Ch 6. Maps

Like in real life, a map is a way of containing data that defines something. Think of the map of New York City. It is a piece of paper that includes data about the city's layout– depending on the map type.
Maps are typically handy when you combine different data types because a slice will only permit one data type per-use.
We'll briefly cover Maps so the reader can be aware of them and see when they might be useful.

Syntax

A map uses the 'map' keyword and [type] followed again by 'type.'

package main

func main() {
  nyc := map[string]int{
      "population": 8000000,
      "size": 302,
  }
  htx := map[string]int{
    "population": 2000000,
    "size": 665,
  }
}
Enter fullscreen mode Exit fullscreen mode

It says a map made of key-pair values of type string and int.
You can have any combination of types with maps, which is when you should consider using them over a slice.

Use case

Although the data is small above it is enough to let us access quick facts about each city with a fast lookup, with syntax similar to a slice.

package main

import "fmt"
func main() {
  nyc := map[string]int{
      "population": 8000000,
      "size": 302,
  }
  htx := map[string]int{
    "population": 2000000,
    "size": 665,
  }
  fmt.Println(htx["population"], nyc["population"])
}
Enter fullscreen mode Exit fullscreen mode

The curious reader should take a look at Go Maps in Action by the GO dev team to get a better sense of when to use 'maps'.

Conclusion

It is enough to know a map and how it generally works. Now, let's move on to part II of automating the boring stuff with go, which contains much more fun practical examples.

Billboard image

The Next Generation Developer Platform

Coherence is the first Platform-as-a-Service you can control. Unlike "black-box" platforms that are opinionated about the infra you can deploy, Coherence is powered by CNC, the open-source IaC framework, which offers limitless customization.

Learn more

Top comments (0)

A Workflow Copilot. Tailored to You.

Pieces.app image

Our desktop app, with its intelligent copilot, streamlines coding by generating snippets, extracting code from screenshots, and accelerating problem-solving.

Read the docs