Go

maps package — Modern Helpers

admin by @admin ADMIN
2m ago
May 31, 2026
Public
0 0 up · 0 down Sign in to vote
`maps` (Go 1.21+) adds Keys, Values, Equal, Clone, Copy — replaces the slice-of-keys boilerplate you used to write to iterate a map deterministically.
Go
Raw
package main

import (
    "fmt"
    "maps"
    "slices"
)

func main() {
    m := map[string]int{"a": 1, "b": 2, "c": 3}

    // Collect keys / values into slices (order NOT guaranteed)
    keys   := slices.Collect(maps.Keys(m))         // Go 1.23+ iter pattern
    values := slices.Collect(maps.Values(m))
    slices.Sort(keys)
    fmt.Println(keys, values)

    // Iterate deterministically by sorting keys first
    for _, k := range keys {
        fmt.Printf("%s=%d\n", k, m[k])
    }

    // Deep copy
    cloned := maps.Clone(m)
    cloned["d"] = 4
    fmt.Println(m["d"])                            // 0 — original untouched
    fmt.Println(cloned["d"])                       // 4

    // Compare two maps
    fmt.Println(maps.Equal(m, m))                  // true
}
Tags

Save your own code snippets

Create a free account and build your private vault. Share publicly whenever you want.