Bird
Raised Fist0
Goprogramming~5 mins

Map use cases in Go

Choose your learning style10 modes available
Introduction
Maps help you store and find data quickly using keys, like a real-life dictionary.
When you want to count how many times words appear in a text.
When you need to look up a phone number by a person's name.
When you want to group items by categories, like sorting fruits by color.
When you want to check if something exists in a collection without searching all items.
Syntax
Go
var m map[keyType]valueType
m = make(map[keyType]valueType)
m[key] = value
value = m[key]
delete(m, key)
Maps use keys to find values quickly, like a label on a box.
You must create a map with make() before adding items.
Examples
Create a map with string keys and int values, add an item, then print it.
Go
m := make(map[string]int)
m["apple"] = 5
fmt.Println(m["apple"])
Create and fill a map in one line, then get a value by key.
Go
m := map[int]string{1: "one", 2: "two"}
fmt.Println(m[2])
Check if a key exists before using its value.
Go
m := make(map[string]int)
value, ok := m["banana"]
if ok {
    fmt.Println("Found", value)
} else {
    fmt.Println("Not found")
}
Sample Program
This program shows how to create a map, add items, check for a key, and delete an item.
Go
package main

import "fmt"

func main() {
    // Create a map to count fruits
    fruitCount := make(map[string]int)

    // Add some fruits
    fruitCount["apple"] = 3
    fruitCount["banana"] = 2
    fruitCount["orange"] = 5

    // Print counts
    fmt.Println("Apple count:", fruitCount["apple"])
    fmt.Println("Banana count:", fruitCount["banana"])

    // Check if "grape" exists
    if count, ok := fruitCount["grape"]; ok {
        fmt.Println("Grape count:", count)
    } else {
        fmt.Println("Grape not found")
    }

    // Remove "banana"
    delete(fruitCount, "banana")

    // Print map after deletion
    fmt.Println("After deleting banana:", fruitCount)
}
OutputSuccess
Important Notes
Maps do not keep order of items; the order when you print may change.
Accessing a key that does not exist returns the zero value for the value type.
Use the second value when accessing a map to check if the key exists.
Summary
Maps store data with keys for fast lookup.
Create maps with make() before use.
Check if a key exists to avoid errors.

Practice

(1/5)
1. What is the primary use of a map in Go?
easy
A. To store data with keys for fast lookup
B. To perform mathematical calculations
C. To create user interfaces
D. To handle file input/output

Solution

  1. Step 1: Understand the purpose of a map

    A map in Go is a collection of key-value pairs, designed for fast data retrieval using keys.
  2. Step 2: Compare with other options

    Options B, C, and D describe unrelated tasks like calculations, UI, or file handling, which are not the main use of maps.
  3. Final Answer:

    To store data with keys for fast lookup -> Option A
  4. Quick Check:

    Maps = key-value storage [OK]
Hint: Maps store key-value pairs for quick access [OK]
Common Mistakes:
  • Confusing maps with slices or arrays
  • Thinking maps are for calculations
  • Assuming maps handle UI or files
2. Which of the following is the correct way to create an empty map in Go?
easy
A. m := make([]string, 0)
B. var m map[string]int = make(map[string]int)
C. m := map[string]int
D. m := []int{}

Solution

  1. Step 1: Identify map creation syntax

    In Go, maps are created using make(map[keyType]valueType). var m map[string]int = make(map[string]int) uses this correctly.
  2. Step 2: Check other options

    m := []int{} creates a slice, not a map. m := map[string]int is invalid syntax for map creation. m := make([]string, 0) creates a slice, not a map.
  3. Final Answer:

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

    Use make() to create maps [OK]
Hint: Use make() to create maps before use [OK]
Common Mistakes:
  • Using slice syntax instead of map syntax
  • Not using make() to initialize maps
  • Confusing map and slice creation
3. What will be the output of this Go code?
m := make(map[string]int)
m["apple"] = 5
m["banana"] = 3
fmt.Println(m["apple"] + m["banana"])
medium
A. 8
B. 53
C. 0
D. Compilation error

Solution

  1. Step 1: Understand map assignments

    The map m stores integers with string keys. "apple" maps to 5, "banana" maps to 3.
  2. Step 2: Calculate the sum

    Adding m["apple"] + m["banana"] equals 5 + 3 = 8.
  3. Final Answer:

    8 -> Option A
  4. Quick Check:

    5 + 3 = 8 [OK]
Hint: Sum values by accessing keys directly [OK]
Common Mistakes:
  • Concatenating values as strings
  • Expecting zero for existing keys
  • Thinking code causes error
4. What is wrong with this Go code snippet?
var m map[string]int
m["key"] = 10
fmt.Println(m["key"])
medium
A. Cannot assign int values to map
B. Key "key" is invalid syntax
C. Map is not initialized with make() before use
D. fmt.Println cannot print map values

Solution

  1. Step 1: Check map initialization

    The map m is declared but not initialized with make(). This causes a runtime panic on assignment.
  2. Step 2: Understand consequences

    Without initialization, m["key"] = 10 causes a panic: assignment to nil map.
  3. Final Answer:

    Map is not initialized with make() before use -> Option C
  4. Quick Check:

    Initialize maps with make() [OK]
Hint: Always initialize maps with make() before adding keys [OK]
Common Mistakes:
  • Forgetting to initialize map before use
  • Assuming declaration is enough
  • Misunderstanding map assignment rules
5. Given a map m := map[string]int{"a": 1, "b": 0, "c": 3}, which code snippet correctly checks if key "b" exists and its value is non-zero?
hard
A. if _, ok := m["b"]; ok { fmt.Println("Exists and non-zero") }
B. if m["b"] == 0 { fmt.Println("Exists and non-zero") }
C. if m["b"] >= 0 { fmt.Println("Exists and non-zero") }
D. if val, ok := m["b"]; ok && val != 0 { fmt.Println("Exists and non-zero") }

Solution

  1. Step 1: Understand map key existence check

    Using val, ok := m["b"] lets us check if key "b" exists (ok) and get its value (val).
  2. Step 2: Check value is non-zero

    The condition ok && val != 0 ensures key exists and value is not zero.
  3. Final Answer:

    if val, ok := m["b"]; ok && val != 0 { fmt.Println("Exists and non-zero") } -> Option D
  4. Quick Check:

    Check key existence and value together [OK]
Hint: Use val, ok := map[key] to check existence and value [OK]
Common Mistakes:
  • Checking value without verifying key existence
  • Assuming zero means key missing
  • Using only ok without value check
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