A Map is some kind of more flexible array. With an array, you have to have an integer as the key like this:
names[1] = "hugo"
So this array have an int
type as index and a string
as the element type.
With a map you are free to define not only the element type, but also the index type. Maps are created with make
.
So this creates a map with a string
index type and a float
element type:
package main
import "fmt"
func main() {
weights := make (map[string]float64)
weights["conan"] = 116.5
fmt.Println(weights["conan"])
}
package main
package main
import "fmt"
func main() {
heroes := map[string]bool{
"peter": true,
"gwen": false,
"bruce": true}
for i := range heroes {
fmt.Println(i)
}
for i, supe := range heroes {
fmt.Println(i, supe)
}
}
With go run maps.go
we get:
peter
gwen
bruce
peter true
gwen false
bruce true
heroes := map[string]bool{
"peter": true,
"gwen": false,
"bruce": true}
Code | Meaning |
---|---|
:= |
create variable and infer type |
[] |
map |
string | of type string |
{} |
with this content |
With
11 for i, supe := range heroes {
You get the index as integer number in i
and the element in supe
.
If you just want the supes, you may do:
11 for _, supe := range heroes {
12 fmt.Println( supe)
13 }
The _
underscore operator is like a bin.
Later we will use maps
with string
index type and interface
element type for all these json files.
But first to creating your own datatypes with structs.
See the full source on github.