maps

package
v0.1.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 27, 2024 License: MIT Imports: 1 Imported by: 2

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

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.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL