maps

package standard library
go1.24.2 Latest Latest
Warning

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

Go to latest
Published: Apr 1, 2025 License: BSD-3-Clause Imports: 2 Imported by: 4,969

Documentation

Overview

Package maps defines various functions useful with maps of any type.

This package does not have any special handling for non-reflexive keys (keys k where k != k), such as floating-point NaNs.

Index

Examples

Constants

This section is empty.

Variables

This section is empty.

Functions

func All added in go1.23.0

func All[Map ~map[K]V, K comparable, V any](m Map) iter.Seq2[K, V]

All returns an iterator over key-value pairs from m. The iteration order is not specified and is not guaranteed to be the same from one call to the next.

Example
Output:

m2 is: map[one:1 two:2]

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.

Example
Output:

1
100
1
100
100

func Collect added in go1.23.0

func Collect[K comparable, V any](seq iter.Seq2[K, V]) map[K]V

Collect collects key-value pairs from seq into a new map and returns it.

Example
Output:

m1 is: map[0:zero 1:one 2:two 3:three]

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.

Example
Output:

m2 is: map[one:1 two:2]
m1 is: map[one:1 two:2]
m2 is: map[one:100 two:2]
m4 is: map[one:[1 2 3] two:[4 5 6]]
m3 is: map[one:[100 2 3] two:[4 5 6]]
m4 is: map[one:[100 2 3] two:[4 5 6]]

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.

Example
Output:

map[four:4 two:2]

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

Example
Output:

true
false

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

Example
Output:

true

func Insert added in go1.23.0

func Insert[Map ~map[K]V, K comparable, V any](m Map, seq iter.Seq2[K, V])

Insert adds the key-value pairs from seq to m. If a key in seq already exists in m, its value will be overwritten.

Example
Output:

m1 is: map[0:zero 1:one 2:two 3:three 1000:THOUSAND]

func Keys added in go1.23.0

func Keys[Map ~map[K]V, K comparable, V any](m Map) iter.Seq[K]

Keys returns an iterator over keys in m. The iteration order is not specified and is not guaranteed to be the same from one call to the next.

Example
Output:

[1 10 1000]

func Values added in go1.23.0

func Values[Map ~map[K]V, K comparable, V any](m Map) iter.Seq[V]

Values returns an iterator over values in m. The iteration order is not specified and is not guaranteed to be the same from one call to the next.

Example
Output:

[THOUSAND Ten one]

Types

This section is empty.

Jump to

Keyboard shortcuts

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