Documentation
¶
Overview ¶
Package maps defines various functions useful with maps of any type.
This package does not have any special handling for non-reflexive keys (keys k where k != k), such as floating-point NaNs.
Index ¶
- func All[Map ~map[K]V, K comparable, V any](m Map) iter.Seq2[K, V]
- func Clone[M ~map[K]V, K comparable, V any](m M) M
- func Collect[K comparable, V any](seq iter.Seq2[K, V]) map[K]V
- 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 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 Insert[Map ~map[K]V, K comparable, V any](m Map, seq iter.Seq2[K, V])
- func Keys[Map ~map[K]V, K comparable, V any](m Map) iter.Seq[K]
- func Values[Map ~map[K]V, K comparable, V any](m Map) iter.Seq[V]
Examples ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func All ¶ added in go1.23.0
func All[Map ~map[K]V, K comparable, V any](m Map) iter.Seq2[K, V]
All returns an iterator over key-value pairs from m. The iteration order is not specified and is not guaranteed to be the same from one call to the next.
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 Collect ¶ added in go1.23.0
func Collect[K comparable, V any](seq iter.Seq2[K, V]) map[K]V
Collect collects key-value pairs from seq into a new map and returns it.
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.
Example ¶
Output: m2 is: map[one:1 two:2] m1 is: map[one:1 two:2] m2 is: map[one:100 two:2] m4 is: map[one:[1 2 3] two:[4 5 6]] m3 is: map[one:[100 2 3] two:[4 5 6]] m4 is: map[one:[100 2 3] two:[4 5 6]]
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 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 Insert ¶ added in go1.23.0
func Insert[Map ~map[K]V, K comparable, V any](m Map, seq iter.Seq2[K, V])
Insert adds the key-value pairs from seq to m. If a key in seq already exists in m, its value will be overwritten.
Types ¶
This section is empty.