Go Maps
Jump to navigation
Jump to search
External
Internal
Overview
Maps and Pass-by-Value
Pointers to Maps
nil and Empty Map
nil Map
Empty Map
Declaration and Initialization
Initialization with make()
Initialization with a Composite Literal
Composite literals can be used for map initialization.
Long variable declaration and initialization with type inference:
var mm = map[string]int{"A": 1, "B": 2}
mm := map[string]int{"A": 1, "B": 2}
Operators
Indexing Operator []
Values stored in a map can be referenced with the indexing operator []
, using the [<key>]
syntax. The indexing operator returns two values: the value associated with the key, if any, and a boolean that says whether the key exists or not in the map.
mm := map[string]int{"A": 1, "B": 2}
v, ok := mm["A"]
fmt.Printf("%d, %t\n", v, ok) // will display 1, true
If the key does not exist in map, the retuned value is not nil
, but the zero value for the type.
The values can be changed, or new key/value pairs added with the same operator:
m["Alice"] = 7
println(m["Alice"])
m["Charlie"] = 9
println(m["Charlie"])