-
Notifications
You must be signed in to change notification settings - Fork 27
/
Copy pathmaps.go
45 lines (34 loc) · 1.27 KB
/
maps.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
package main
import (
"fmt"
)
// Maps function to detail the map built-in associative data type
func Maps() {
// To create an empty map, use the builtin make: make(map[key-type]val-type).
m := make(map[string]int)
// Set key/value pairs using typical name[key] = val syntax.
m["k1"] = 7
m["k2"] = 13
// Printing a map with e.g. fmt.Println will show all of its key/value pairs.
fmt.Println("map:", m)
// Get a value for a key with name[key].
v1 := m["k1"]
fmt.Println("v1: ", v1)
// The builtin len returns the number of key/value pairs when called on a map.
fmt.Println("len: ", len(m))
// The builtin delete removes key/value pairs from a map.
delete(m, "k2")
fmt.Println("map: ", m)
// The optional second return value when getting a value from a map indicates if the key was present in the map.
// This can be used to disambiguate between missing keys and keys with zero values like 0 or "".
// Here we didn’t need the value itself, so we ignored it with the blank identifier _.
_, prs := m["k2"]
fmt.Println("prs: ", prs)
// You can also declare and initialize a new map in the same line with this syntax.
n := map[string]int{
"foo": 1,
"bar": 2,
}
fmt.Println("map: ", n)
// Note that maps appear in the form map[k:v k:v] when printed with fmt.Println.
}