maps

package
v0.10.0 Latest Latest
Warning

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

Go to latest
Published: Oct 31, 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 that mirrors the public API of the standard Go experimental package `golang.org/x/exp/maps`. It offers a convenient way to access common utilities for cloning, extracting keys/values, and comparing maps.

For detailed information on the behavior of specific functions, please refer to the official Go documentation for the `golang.org/x/exp/maps` package.

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 Concat added in v0.7.0

func Concat[M ~map[K]V, K comparable, V any](m M, ms ...M)

Concat merges multiple maps into a single map. If a key exists in multiple maps, the value from the last map will be used.

func ConcatWith added in v0.7.0

func ConcatWith[M ~map[K]V, K comparable, V any](merge func(K, V, V) V, m M, ms ...M)

ConcatWith 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 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 Exclude added in v0.7.0

func Exclude[M ~map[K]V, K comparable, V any](m M, keys ...K)

Exclude removes all key/value pairs from m for which f returns false.

func Filter

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

Filter keeps only the key-value pairs in the map for which the provided function returns true.

func FromKVs added in v0.7.0

func FromKVs[K comparable, V any](kvs ...KeyValue[K, V]) map[K]V

FromKVs converts a slice of key-value pairs to a map.

func FromSlice added in v0.7.0

func FromSlice[T any, K comparable, V any](ts []T, f func(T) (K, V)) map[K]V

FromSlice converts a slice of types to a map.

func FromSliceWithIndex added in v0.8.0

func FromSliceWithIndex[T any, K comparable, V any](ts []T, f func(int, T) (K, V)) map[K]V

FromSliceWithIndex converts a slice of types to a map, using the provided function to extract the key and value.

func Keys

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

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 MergeWith added in v0.7.0

func MergeWith[M ~map[K]V, K comparable, V any](dest M, src M, cmp func(key K, src V, val V) V)

MergeWith 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 ToSlice added in v0.7.0

func ToSlice[M ~map[K]V, K comparable, V any, T any](m M, f func(K, V) T) []T

ToSlice converts a map to a slice of types.

func ToSliceWith added in v0.8.0

func ToSliceWith[M ~map[K]V, K comparable, V any, T any](m M, f func(K, V) (T, bool)) []T

ToSliceWith converts a map to a slice of types, filtering out values that return false.

func ToStruct added in v0.7.0

func ToStruct[M ~map[K]V, K comparable, V any, S any](m M, f func(*S, K, V) *S) *S

ToStruct converts a map to a struct.

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 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.

func KV added in v0.10.0

func KV[K comparable, V any](key K, value V) KeyValue[K, V]

KV creates a new KeyValue pair with type inference. This is a convenience function that allows type inference when creating a KeyValue. Example:

kv := KV("a", 1) // returns KeyValue[string, int]{Key: "a", Val: 1}

func KVs added in v0.10.0

func KVs[K comparable, V any](kvs ...KeyValue[K, V]) []KeyValue[K, V]

KVs creates a slice of KeyValue pairs from the given key-value pairs. This is a convenience function that allows creating slices of KeyValue with type inference. Example:

kvs := KVs(
  KV(1, "one"),
  KV(2, "two"),
) // returns []KeyValue[int, string]

func ToKVs added in v0.7.0

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

ToKVs converts a map to a slice of key-value pairs.

Jump to

Keyboard shortcuts

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