maps

package
v3.5.0 Latest Latest
Warning

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

Go to latest
Published: May 18, 2024 License: MIT Imports: 2 Imported by: 6

Documentation

Overview

Package maps contains functions for working with Go maps: duplicating, inverting, constructing, and iterating over them, as well as testing their equality.

The maps package is a drop-in replacement for the maps package added to the Go stdlib in Go 1.21 (https://go.dev/doc/go1.21#maps).

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

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 Each

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

Each calls a function on each key-value pair in the given map.

func Eachx

func Eachx[M ~map[K]V, K comparable, V any](m M, f func(K, V) error) error

Eachx is the extended form of Each. It calls a function on each key-value pair in the given map. If the function returns an error, Each exits early with that error.

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 FromPairs

func FromPairs[K comparable, V any](pairs iter.Of[iter.Pair[K, V]]) (map[K]V, error)

FromPairs produces a new map from an iterator of key-value pairs.

func Invert

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

Invert inverts the key-value pairs in the given map, producing a new map with the values as keys and the keys as values. If any of the values in the input are duplicates, an indeterminate one will survive with its key while the others will be silently dropped.

func InvertMulti

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

InvertMulti inverts the key-value pairs in the map. It is like Invert but handles duplicate values: the key slice contains all the keys that map to the same value.

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

This section is empty.

Jump to

Keyboard shortcuts

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