This program creates a map to store ages by name, adds two entries, and prints the map and one value.
Go
package main
import"fmt"
func main() {
// Create a map to store ages
ages := make(map[string]int)
// Add some data
ages["Alice"] = 30
ages["Bob"] = 25// Print the map
fmt.Println("Ages:", ages)
// Access a value
fmt.Println("Alice's age:", ages["Alice"])
}
OutputSuccess
Important Notes
If you try to read a key that does not exist, Go returns the zero value for the value type (like 0 for int).
You can check if a key exists using the comma-ok idiom: value, ok := mapName[key].
Summary
Maps store key-value pairs for fast lookup.
Create maps with make before use.
Keys must be comparable types like strings or ints.
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
Step 1: Understand map creation syntax
In Go, the built-in function make is used to create maps with specified key and value types.
Step 2: Identify the correct syntax for an empty map
make(map[string]int) creates an empty map with string keys and int values.
Final Answer:
m := make(map[string]int) -> Option A
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
Step 1: Check key type validity
Map keys must be comparable types. Slices ([]int) are not comparable in Go.
Step 2: Identify invalid map key type
Using []int as a key type causes a syntax error because slices cannot be map keys.
Final Answer:
m := make(map[[]int]string) -> Option C
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?
The map m stores key-value pairs: "apple"=5 and "banana"=3.
Step 2: Calculate the sum of values
Adding m["apple"] (5) and m["banana"] (3) results in 8.
Final Answer:
8 -> Option B
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
Step 1: Check map initialization
The map m is declared but not initialized with make, so it is nil.
Step 2: Understand runtime behavior
Assigning to a nil map causes a runtime panic (error) because the map is not ready to store values.
Final Answer:
Map declared but not initialized, causes runtime panic -> Option D
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
Step 1: Match keys and values correctly
Keys are strings, values are ints. The map must have type map[string]int.
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.
Final Answer:
m := make(map[string]int)
for i := range keys {
m[keys[i]] = values[i]
} -> Option A
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 unknownstrongwhile earning +1 Grip toward your certificate.