Documentation
¶
Overview ¶
Package maps contains functions for working with Go maps: duplicating, inverting, constructing, and iterating over them, as well as testing their equality.
The maps package is a drop-in replacement for the maps package added to the Go stdlib in Go 1.21 (https://go.dev/doc/go1.21#maps).
Index ¶
- func Clear[M ~map[K]V, K comparable, V any](m M)
- func Clone[M ~map[K]V, K comparable, V any](m M) M
- func Copy[M1 ~map[K]V, M2 ~map[K]V, K comparable, V any](dst M1, src M2)
- func DeleteFunc[M ~map[K]V, K comparable, V any](m M, del func(K, V) bool)
- func Each[M ~map[K]V, K comparable, V any](m M, f func(K, V))
- func Eachx[M ~map[K]V, K comparable, V any](m M, f func(K, V) error) error
- func Equal[M1, M2 ~map[K]V, K, V comparable](m1 M1, m2 M2) bool
- func EqualFunc[M1 ~map[K]V1, M2 ~map[K]V2, K comparable, V1, V2 any](m1 M1, m2 M2, eq func(V1, V2) bool) bool
- func FromPairs[K comparable, V any](pairs iter.Of[iter.Pair[K, V]]) (map[K]V, error)
- func Invert[M ~map[K]V, K, V comparable](m M) map[V]K
- func InvertMulti[M ~map[K]V, K, V comparable](m M) map[V][]K
- func Keys[M ~map[K]V, K comparable, V any](m M) []K
- func Values[M ~map[K]V, K comparable, V any](m M) []V
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func Clear ¶
func Clear[M ~map[K]V, K comparable, V any](m M)
Clear removes all entries from m, leaving it empty.
func Clone ¶
func Clone[M ~map[K]V, K comparable, V any](m M) M
Clone returns a copy of m. This is a shallow clone: the new keys and values are set using ordinary assignment.
func Copy ¶
func Copy[M1 ~map[K]V, M2 ~map[K]V, K comparable, V any](dst M1, src M2)
Copy copies all key/value pairs in src adding them to dst. When a key in src is already present in dst, the value in dst will be overwritten by the value associated with the key in src.
func DeleteFunc ¶
func DeleteFunc[M ~map[K]V, K comparable, V any](m M, del func(K, V) bool)
DeleteFunc deletes any key/value pairs from m for which del returns true.
func Each ¶
func Each[M ~map[K]V, K comparable, V any](m M, f func(K, V))
Each calls a function on each key-value pair in the given map.
func Eachx ¶
func Eachx[M ~map[K]V, K comparable, V any](m M, f func(K, V) error) error
Eachx is the extended form of Each. It calls a function on each key-value pair in the given map. If the function returns an error, Each exits early with that error.
func Equal ¶
func Equal[M1, M2 ~map[K]V, K, V comparable](m1 M1, m2 M2) bool
Equal reports whether two maps contain the same key/value pairs. Values are compared using ==.
func EqualFunc ¶
func EqualFunc[M1 ~map[K]V1, M2 ~map[K]V2, K comparable, V1, V2 any](m1 M1, m2 M2, eq func(V1, V2) bool) bool
EqualFunc is like Equal, but compares values using eq. Keys are still compared with ==.
func Invert ¶
func Invert[M ~map[K]V, K, V comparable](m M) map[V]K
Invert inverts the key-value pairs in the given map, producing a new map with the values as keys and the keys as values. If any of the values in the input are duplicates, an indeterminate one will survive with its key while the others will be silently dropped.
func InvertMulti ¶
func InvertMulti[M ~map[K]V, K, V comparable](m M) map[V][]K
InvertMulti inverts the key-value pairs in the map. It is like Invert but handles duplicate values: the key slice contains all the keys that map to the same value.
func Keys ¶
func Keys[M ~map[K]V, K comparable, V any](m M) []K
Keys returns the keys of the map m. The keys will be in an indeterminate order.
func Values ¶
func Values[M ~map[K]V, K comparable, V any](m M) []V
Values returns the values of the map m. The values will be in an indeterminate order.
Types ¶
This section is empty.