package
0.0.0-20240925070155-7e401e5804bf
Repository: https://github.com/mhaatha/go-learn.git
Documentation: pkg.go.dev

# README

Maps

Maps are similar to JavaScript objects, Python dictionaries, and Ruby hashes. Maps are a data structure that provides key->value mapping.

The zero value of a map is nil.

We can create a map by using a literal or by using the make() function:

ages := make(map[string]int)
ages["John"] = 37
ages["Mary"] = 24
ages["Mary"] = 21 // overwrites 24
ages = map[string]int{
  "John": 37,
  "Mary": 21,
}

The len() function works on a map, it returns the total number of key/value pairs.

ages = map[string]int{
  "John": 37,
  "Mary": 21,
}
fmt.Println(len(ages)) // 2

Assignment

We can speed up our contact-info lookups by using a map! Looking up a value in a map by its key is much faster than searching through a slice.

Complete the getUserMap function. It takes a slice of names and a slice of phone numbers, and returns a map of name -> user structs and potentially an error. A user struct just contains a user's name and phone number.

If the length of names and phoneNumbers is not equal, return an error with the string "invalid sizes".

The first name in the names slice matches the first phone number, and so on.