2. Mutations
Insert an Element
m[key] = elemGet an Element
elem = m[key]Delete an Element
delete(m, key)Check If a Key Exists
elem, ok := m[key]Assignment
package main
func deleteIfNecessary(users map[string]user, name string) (deleted bool, err error) {
// ?
}
type user struct {
name string
number int
scheduledForDeletion bool
}Solution
What Each Line Does
Line 1: Check if user exists
Line 2: Handle missing user
Line 3: Handle user not scheduled for deletion
Line 4: Delete the user
Key Mistakes You Made
Mistake 1: Wrong variable in delete
Mistake 2: Trying to look up elem in the map
Mistake 3: Wrong error syntax
Tracing Through Example
Call: deleteIfNecessary(users, "Alice")
deleteIfNecessary(users, "Alice")Call: deleteIfNecessary(users, "Bob")
deleteIfNecessary(users, "Bob")Call: deleteIfNecessary(users, "Charlie")
deleteIfNecessary(users, "Charlie")