Maps
Both arrays and slices limit you to using positive integers as indexes. Maps are powerful data structures because they allow you to use indexes of various data types as keys to look up your data as long as these keys are comparable. A practical rule of thumb is that you should use a map when you are going to need indexes that are not positive integer numbers or when the integer indexes have big gaps.
Although bool
variables are comparable, it makes no sense to use a bool
variable as the key to a Go map because it only allows for two distinct values. Additionally, although floating point values are comparable, precision issues caused by the internal representation of such values might create bugs and crashes, so you might want to avoid using floating point values as keys to Go maps.
You might ask, why do we need maps and what are their advantages? The following list will help clarify things:
- Maps are very versatile. Later in this chapter we will...