[Go] Map
A Go map type looks like this:
map[KeyType]ValueType
This variable m
is a map of string keys to int values:
var m map[string]int
Map types are reference types, like pointers or slices, and so the value of m
above is nil
; it doesn’t point to an initialized map. A nil map behaves like an empty map when reading, but attempts to write to a nil map will cause a runtime panic; don’t do that. To initialize a map, use the built in make
function:
m = make(map[string]int)
Setup a Map with default values:
package main
import "fmt"
func main() {
users := map[int]string{
1: "john",
2: "Joe",
}
fmt.Println(users[1]) // john
}
Check value exists:
package main
import "fmt"
func main() {
users := map[int]string{
1: "john",
2: "Joe",
}
fmt.Println(users[1]) // john
thirdUser, ok := users[3]
fmt.Println(thirdUser, ok) // <empty> false
if _, ok := users[3]; ok {
fmt.Println("User exists")
} else {
fmt.Println("User does not exists") // print out
}
}
delete prop:
delete(users, 1)