2012-10-09 21:02:12 -07:00

44 lines
1.2 KiB
Go

// Maps are Go's built-in associative data type (sometimes
// called "hashes" or "dicts" in other languages).
package main
import "fmt"
func main() {
// 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. `Println` will show all of
// its key/value pairs, which can be useful for
// debugging.
fmt.Println("map:", m)
// Get a value for a key with `name[key]`.
v1 := m["k1"]
fmt.Println("v1: ", v1)
// The builtin `len` function 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 indiciates 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 `""`.
_, prs := m["k2"]
fmt.Println("prs:", prs)
}