Challenge - 5 Problems
Map Mastery in Go
Get all challenges correct to earn this badge!
Test your skills under time pressure!
❓ Predict Output
intermediate2:00remaining
Map key existence check output
What is the output of this Go program that checks if a key exists in a map?
Go
package main import "fmt" func main() { m := map[string]int{"apple": 5, "banana": 3} val, ok := m["orange"] fmt.Println(val, ok) }
Attempts:
2 left
💡 Hint
Check what happens when you access a map with a key that does not exist.
✗ Incorrect
In Go, when you access a map with a key that does not exist, the zero value of the value type is returned (0 for int) and the boolean 'ok' is false.
❓ Predict Output
intermediate2:00remaining
Map iteration order output
What is the output of this Go program that iterates over a map?
Go
package main import "fmt" func main() { m := map[int]string{1: "one", 2: "two", 3: "three"} for k, v := range m { fmt.Printf("%d:%s ", k, v) } }
Attempts:
2 left
💡 Hint
Remember how Go handles map iteration order.
✗ Incorrect
Go does not guarantee the order of map iteration. The output order can change each time the program runs.
🔧 Debug
advanced2:00remaining
Identify the runtime error in map access
What runtime error will this Go program produce when run?
Go
package main func main() { var m map[string]int m["key"] = 10 }
Attempts:
2 left
💡 Hint
Think about what happens if you assign to a nil map.
✗ Incorrect
Maps must be initialized before assigning values. Assigning to a nil map causes a runtime panic.
🧠 Conceptual
advanced2:00remaining
Map key type restrictions
Which of the following types can be used as keys in Go maps?
Attempts:
2 left
💡 Hint
Map keys must be comparable types in Go.
✗ Incorrect
Go map keys must be types that can be compared with '=='. Slices and maps are not comparable, arrays and structs are if their fields are comparable.
🚀 Application
expert3:00remaining
Count word frequency using a map
What is the final value of the map after running this Go program that counts word frequency?
Go
package main import ( "fmt" "strings" ) func main() { text := "go go gophers go" words := strings.Fields(text) freq := make(map[string]int) for _, w := range words { freq[w]++ } fmt.Println(freq) }
Attempts:
2 left
💡 Hint
Count how many times 'go' appears in the text.
✗ Incorrect
The word 'go' appears 3 times and 'gophers' once. The map counts each word's frequency correctly.