var m map[string]int
delete(m, "key")
fmt.Println("Done")
What will happen when this code runs?
medium
A. Compilation error because delete cannot be used on nil maps.
B. Runtime panic due to deleting from a nil map.
C. Prints "Done" without error.
D. Deletes the key if it exists, then prints "Done".
Solution
Step 1: Understand nil map behavior
In Go, a nil map behaves like an empty map for reads and deletes; deleting a key from a nil map does nothing and does not panic.
Step 2: Analyze the code behavior
Deleting from a nil map is safe and does not cause runtime panic. The program prints "Done" normally.
Final Answer:
Prints "Done" without error. -> Option C
Quick Check:
Deleting from nil map is safe [OK]
Hint: Deleting from nil map is safe, no panic occurs [OK]
Common Mistakes:
Assuming runtime panic on deleting from nil map
Thinking delete causes compilation error
Confusing nil map with uninitialized map variable
5. You have a map m := map[string]int{"x": 10, "y": 0, "z": -5}. You want to delete all keys whose values are zero or less. Which code snippet correctly deletes these entries?
hard
A. for k, v := range m { if v <= 0 { delete(m, k) } }
B. for k := range m { if m[k] < 0 { delete(m, k) } }
C. for k, v := range m { if v == 0 { delete(m, k) } }
D. for k := range m { if m[k] == 0 { delete(m, k) } }
Solution
Step 1: Identify keys with values zero or less
Keys with values <= 0 are "y" (0) and "z" (-5).
Step 2: Choose loop that deletes keys with v <= 0
for k, v := range m { if v <= 0 { delete(m, k) } } uses for k, v := range m and deletes keys where v <= 0, correctly removing "y" and "z".
Step 3: Compare other options
Options A and C check only for == 0, missing negative values like "z":-5. for k := range m { if m[k] < 0 { delete(m, k) } } checks m[k] < 0, missing zero values like "y":0.
Final Answer:
for k, v := range m { if v <= 0 { delete(m, k) } } -> Option A
Quick Check:
Delete keys with value <= 0 using k,v loop [OK]
Hint: Use for k,v range and delete if v <= 0 [OK]
Common Mistakes:
Deleting only keys with value == 0, missing negatives
Using only key without value in loop
Modifying map incorrectly during iteration
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.