maps

package
v0.5.0 Latest Latest
Warning

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

Go to latest
Published: Sep 28, 2025 License: MIT Imports: 1 Imported by: 4

Documentation

Overview

Package maps provides a set of generic functions for common operations on maps.

This package is a generated adapter and mirrors the public API of the standard Go experimental package `golang.org/x/exp/maps`. It offers a convenient way to access these common utilities, such as cloning maps, extracting keys or values, and comparing maps for equality.

Example (Extracting Keys and Values):

ages := map[string]int{
	"Alice": 30,
	"Bob":   25,
	"Carol": 35,
}

names := maps.Keys(ages)   // Returns ["Alice", "Bob", "Carol"] (order is not guaranteed)
_ = maps.Values(ages) // Returns [30, 25, 35] (order is not guaranteed)

// Sort the names for deterministic output
slices.Sort(names)
// names is now ["Alice", "Bob", "Carol"]

Package maps implements the functions, types, and interfaces for the module.

Package maps contains generated code by adptool.

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)

func Clone

func Clone[M ~map[K]V, K comparable, V any](m M) M

func Copy

func Copy[M1 ~map[K]V, M2 ~map[K]V, K comparable, V any](dst M1, src M2)

func DeleteFunc

func DeleteFunc[M ~map[K]V, K comparable, V any](m M, del func(K, V) bool)

func Equal

func Equal[M1, M2 ~map[K]V, K, V comparable](m1 M1, m2 M2) bool

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

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 GetOr added in v0.4.0

func GetOr[V any](v V, ok bool, defaultValue V) V

GetOr is a utility function that simplifies map lookups. It returns the value from a map lookup or a default value if the key is not found.

func GetOrNil added in v0.4.0

func GetOrNil[V any](v *V, ok bool) *V

GetOrNil is a utility function that simplifies map lookups for pointer types. It returns the value from a map lookup or nil if the key is not found.

func GetOrZero added in v0.4.0

func GetOrZero[V any](v V, ok bool) V

GetOrZero is a utility function that simplifies map lookups. It returns the value from a map lookup or the zero value of the type if the key is not found.

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

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 MustGet added in v0.4.0

func MustGet[V any](v V, ok bool) V

MustGet is a utility function that simplifies map lookups. It returns the value from a map lookup and panics if the key is not found.

func Transform added in v0.1.5

func Transform[M ~map[K]V, K comparable, V any, TK comparable, TV any](m M, f func(K, V) (TK, TV, bool)) map[TK]TV

Transform remaps the keys and values of a map using a custom transformation function. The transformation function is called for each key-value pair in the original map. If the transformation function returns false as its third return value, the key-value pair is skipped. Otherwise, the transformed key-value pair is added to the new map.

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

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