Bird
Raised Fist0
Goprogramming~5 mins

Map creation in Go - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What is a map in Go?
A map in Go is a collection that stores key-value pairs. It allows you to look up a value by its key quickly, like a dictionary or a phone book.
Click to reveal answer
beginner
How do you declare an empty map in Go?
You declare an empty map using the syntax: var m map[string]int or by using make: m := make(map[string]int). The second way creates an initialized map ready to use.
Click to reveal answer
beginner
How do you add or update a key-value pair in a Go map?
You add or update a value by assigning it to a key: m["key"] = value. If the key exists, the value updates; if not, it adds a new pair.
Click to reveal answer
intermediate
What happens if you try to read a key that does not exist in a Go map?
Reading a non-existent key returns the zero value for the map's value type. For example, if the value type is int, it returns 0. You can also check if the key exists using the two-value assignment.
Click to reveal answer
intermediate
How do you check if a key exists in a Go map?
Use the two-value assignment: value, ok := m["key"]. The variable ok is true if the key exists, false otherwise.
Click to reveal answer
How do you create an empty map of string keys and int values in Go?
AAll of the above
Bm := map[string]int{}
Cvar m map[string]int
Dm := make(map[string]int)
What is the zero value returned when accessing a missing key in a map of type map[string]int?
A"" (empty string)
Bnil
C0
Dfalse
Which syntax checks if a key exists in a Go map?
Avalue := m["key"]
Bexists := m.contains("key")
Cif m.hasKey("key")
Dvalue, ok := m["key"]
What happens if you assign a value to a key in a nil map?
AIt causes a runtime panic
BThe map automatically initializes
CThe assignment is ignored
DThe key is added but value is zero
How do you declare and initialize a map with some key-value pairs in one line?
Am := make(map[string]int){"a": 1, "b": 2}
Bm := map[string]int{"a": 1, "b": 2}
Cvar m = map[string]int{}
Dm := new(map[string]int)
Explain how to create, add, and check keys in a Go map.
Think about how you start a map, put things in it, and see if something is there.
You got /4 concepts.
    Describe what happens when you read a key that does not exist in a Go map and how to handle it.
    Remember the difference between missing keys and keys with zero values.
    You got /3 concepts.

      Practice

      (1/5)
      1. What is the correct way to create an empty map with string keys and int values in Go?
      easy
      A. m := make(map[string]int)
      B. m := map[string]int()
      C. m := new(map[string]int)
      D. m := []string{}

      Solution

      1. Step 1: Understand map creation syntax

        In Go, the built-in function make is used to create maps with specified key and value types.
      2. Step 2: Identify the correct syntax for an empty map

        make(map[string]int) creates an empty map with string keys and int values.
      3. Final Answer:

        m := make(map[string]int) -> Option A
      4. Quick Check:

        Use make(map[keyType]valueType) to create maps [OK]
      Hint: Use make() with map[keyType]valueType to create maps [OK]
      Common Mistakes:
      • Using new() instead of make() for maps
      • Trying to create map with slice syntax
      • Confusing map literal with empty slice
      2. Which of the following is a syntax error when creating a map in Go?
      easy
      A. m := make(map[int]string)
      B. m := make(map[float64]int)
      C. m := make(map[[]int]string)
      D. m := map[int]string{}

      Solution

      1. Step 1: Check key type validity

        Map keys must be comparable types. Slices ([]int) are not comparable in Go.
      2. Step 2: Identify invalid map key type

        Using []int as a key type causes a syntax error because slices cannot be map keys.
      3. Final Answer:

        m := make(map[[]int]string) -> Option C
      4. Quick Check:

        Map keys must be comparable types [OK]
      Hint: Map keys cannot be slices or maps, only comparable types [OK]
      Common Mistakes:
      • Using slices or maps as map keys
      • Confusing map literal with slice literal
      • Ignoring key type restrictions
      3. What will be the output of the following Go code?
      m := make(map[string]int)
      m["apple"] = 5
      m["banana"] = 3
      fmt.Println(m["apple"] + m["banana"])
      medium
      A. 53
      B. 8
      C. 0
      D. Compilation error

      Solution

      1. Step 1: Understand map assignments

        The map m stores key-value pairs: "apple"=5 and "banana"=3.
      2. Step 2: Calculate the sum of values

        Adding m["apple"] (5) and m["banana"] (3) results in 8.
      3. Final Answer:

        8 -> Option B
      4. Quick Check:

        5 + 3 = 8 [OK]
      Hint: Sum map values by accessing keys directly [OK]
      Common Mistakes:
      • Concatenating values as strings instead of adding
      • Expecting zero for existing keys
      • Forgetting to initialize map before use
      4. Identify the error in the following Go code snippet:
      var m map[string]int
      m["key"] = 10
      fmt.Println(m["key"])
      medium
      A. No error, prints 10
      B. Syntax error in map declaration
      C. Key type must be int, not string
      D. Map declared but not initialized, causes runtime panic

      Solution

      1. Step 1: Check map initialization

        The map m is declared but not initialized with make, so it is nil.
      2. Step 2: Understand runtime behavior

        Assigning to a nil map causes a runtime panic (error) because the map is not ready to store values.
      3. Final Answer:

        Map declared but not initialized, causes runtime panic -> Option D
      4. Quick Check:

        Declare + make before use to avoid panic [OK]
      Hint: Always initialize maps with make() before adding keys [OK]
      Common Mistakes:
      • Forgetting to initialize map before assignment
      • Assuming declaration alone creates usable map
      • Confusing map declaration with slice declaration
      5. Given a slice of strings keys := []string{"a", "b", "c"} and a slice of ints values := []int{1, 2, 3}, which code snippet correctly creates a map from keys to values?
      hard
      A. m := make(map[string]int) for i := range keys { m[keys[i]] = values[i] }
      B. m := map[string]int{} for i, v := range values { m[v] = keys[i] }
      C. m := make(map[int]string) for i := 0; i < len(keys); i++ { m[i] = keys[i] }
      D. m := make(map[string]int) for i := 0; i < len(values); i++ { m[values[i]] = keys[i] }

      Solution

      1. Step 1: Match keys and values correctly

        Keys are strings, values are ints. The map must have type map[string]int.
      2. Step 2: Verify loop and assignment

        m := make(map[string]int) for i := range keys { m[keys[i]] = values[i] } loops over keys and assigns m[keys[i]] = values[i], correctly pairing keys to values.
      3. Final Answer:

        m := make(map[string]int) for i := range keys { m[keys[i]] = values[i] } -> Option A
      4. Quick Check:

        Loop keys, assign values to map[key] [OK]
      Hint: Loop keys, assign values to map[key] for correct pairing [OK]
      Common Mistakes:
      • Swapping keys and values in map assignment
      • Using wrong map key or value types
      • Not initializing map before assignment
      Recommended

      Ready to prove it?

      Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

      10 questions~5 mineasy hard