Documentation
¶
Overview ¶
Package maps implements the functions, types, and interfaces for the module.
Package maps implements the functions, types, and interfaces for the module.
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[M ~map[K]V, K comparable, V any](dst M, src M)
- 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 Filter[M ~map[K]V, K comparable, V any](m M, keys ...K)
- func FilterFunc[M ~map[K]V, K comparable, V any](m M, f func(K, V) bool)
- func KVsToMap[KV KeyValue[K, V], K comparable, V any, M ~map[K]V](kvs []KeyValue[K, V]) M
- func Keys[M ~map[K]V, K comparable, V any](m M) []K
- func MapToKVs[M ~map[K]V, K comparable, V any, KV KeyValue[K, V]](m M) []KV
- func MapToStruct[M ~map[K]V, K comparable, V any, S any](m M, f func(*S, K, V) *S) *S
- func MapToTypes[M ~map[K]V, K comparable, V any, T any](m M, f func(K, V) T) []T
- func Merge[M ~map[K]V, K comparable, V any](dest M, src M, overlay bool)
- func MergeFunc[M ~map[K]V, K comparable, V any](dest M, src M, cmp func(key K, src V, val V) V)
- func MergeMaps[M ~map[K]V, K comparable, V any](m M, ms ...M)
- func MergeMapsFunc[M ~map[K]V, K comparable, V any](merge func(K, V, V) V, m M, ms ...M)
- func TypesToMap[T any, M ~map[K]V, K comparable, V any](ts []T, f func(T) (K, V)) M
- func Values[M ~map[K]V, K comparable, V any](m M) []V
- type KeyValue
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[M ~map[K]V, K comparable, V any](dst M, src M)
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 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 Filter ¶
func Filter[M ~map[K]V, K comparable, V any](m M, keys ...K)
Filter removes all key/value pairs from m for which f returns false.
func FilterFunc ¶
func FilterFunc[M ~map[K]V, K comparable, V any](m M, f func(K, V) bool)
FilterFunc is like Filter, but uses a function.
func KVsToMap ¶
func KVsToMap[KV KeyValue[K, V], K comparable, V any, M ~map[K]V](kvs []KeyValue[K, V]) M
KVsToMap converts a slice of key-value pairs to a map.
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 MapToKVs ¶
func MapToKVs[M ~map[K]V, K comparable, V any, KV KeyValue[K, V]](m M) []KV
MapToKVs converts a map to a slice of key-value pairs.
func MapToStruct ¶ added in v0.1.1
func MapToStruct[M ~map[K]V, K comparable, V any, S any](m M, f func(*S, K, V) *S) *S
MapToStruct converts a map to a struct.
func MapToTypes ¶
func MapToTypes[M ~map[K]V, K comparable, V any, T any](m M, f func(K, V) T) []T
MapToTypes converts a map to a slice of types.
func Merge ¶
func Merge[M ~map[K]V, K comparable, V any](dest M, src M, overlay bool)
Merge merges the values of src into dest. If overlay is true, existing values in dest will be overwritten.
func MergeFunc ¶
func MergeFunc[M ~map[K]V, K comparable, V any](dest M, src M, cmp func(key K, src V, val V) V)
MergeFunc merges the values of src into dest using the provided merge function. If a key exists in both maps, the merge function will be called to determine the final value.
func MergeMaps ¶ added in v0.1.1
func MergeMaps[M ~map[K]V, K comparable, V any](m M, ms ...M)
MergeMaps merges multiple maps into a single map. If a key exists in multiple maps, the value from the last map will be used.
func MergeMapsFunc ¶ added in v0.1.1
func MergeMapsFunc[M ~map[K]V, K comparable, V any](merge func(K, V, V) V, m M, ms ...M)
MergeMapsFunc merges multiple maps into a single map using a custom merge function. If a key exists in multiple maps, the merge function will be called to determine the final value.
func TypesToMap ¶
func TypesToMap[T any, M ~map[K]V, K comparable, V any](ts []T, f func(T) (K, V)) M
TypesToMap converts a slice of types to a map.
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 ¶
type KeyValue ¶
type KeyValue[K comparable, V any] struct { Key K Val V }
KeyValue is a key-value pair.