Documentation
¶
Overview ¶
Copyright 2018 the u-root Authors. All rights reserved Use of this source code is governed by a BSD-style license that can be found in the LICENSE file. Package hashmap implements persistent hashmap.
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
Types ¶
type Equal ¶
type Equal func(k1, k2 interface{}) bool
Equal is the type of a function that reports whether two keys are equal.
type Hash ¶
type Hash func(k interface{}) uint32
Hash is the type of a function that returns the hash code of a key.
type Iterator ¶
type Iterator interface {
// Elem returns the current key-value pair.
Elem() (interface{}, interface{})
// HasElem returns whether the iterator is pointing to an element.
HasElem() bool
// Next moves the iterator to the next position.
Next()
}
Iterator is an iterator over map elements. It can be used like this:
for it := m.Iterator(); it.HasElem(); it.Next() {
key, value := it.Elem()
// do something with elem...
}
type Map ¶
type Map interface {
Len() int
// Index returns whether there is a value associated with the given key, and
// that value or nil.
Index(k interface{}) (interface{}, bool)
// Assoc returns an almost identical map, with the given key associated with
// the given value.
Assoc(k, v interface{}) Map
// Dissoc returns an almost identical map, with the given key associated
// with no value.
Dissoc(k interface{}) Map
// Iterator returns an iterator over the map.
Iterator() Iterator
}
Map is a persistent associative data structure mapping keys to values. It is immutable, and supports near-O(1) operations to create modified version of the map that shares the underlying data structure. Because it is immutable, all of its methods are safe for concurrent use.