Documentation
¶
Index ¶
- type Element
- type Elementer
- type Lister
- type OrderedMap
- func (m *OrderedMap) Back() *Element
- func (m *OrderedMap) Copy() *OrderedMap
- func (m *OrderedMap) Delete(key interface{}) (didDelete bool)
- func (m *OrderedMap) Front() *Element
- func (m *OrderedMap) Get(key interface{}) (interface{}, bool)
- func (m *OrderedMap) GetElement(key interface{}) *Element
- func (m *OrderedMap) GetOrDefault(key, defaultValue interface{}) interface{}
- func (m *OrderedMap) Keys() (keys []interface{})
- func (m *OrderedMap) Len() int
- func (m *OrderedMap) Set(key, value interface{}) bool
Examples ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Element ¶
type Element struct {
Key, Value interface{}
// contains filtered or unexported fields
}
type Lister ¶
type Lister interface {
Init() Lister
Len() int
Front() Elementer
Back() Elementer
Remove(e Elementer) interface{}
PushFront(v interface{}) Elementer
PushBack(v interface{}) Elementer
InsertBefore(v interface{}, mark Elementer) Elementer
InsertAfter(v interface{}, mark Elementer) Elementer
MoveToFront(e Elementer)
MoveToBack(e Elementer)
MoveBefore(e, mark Elementer)
MoveAfter(e, mark Elementer)
PushBackList(other Lister)
PushFrontList(other Lister)
}
type OrderedMap ¶
type OrderedMap struct {
// contains filtered or unexported fields
}
func NewOrderedMap ¶
func NewOrderedMap() *OrderedMap
Example ¶
package main
import (
"fmt"
"github.com/elliotchance/orderedmap"
)
func main() {
m := orderedmap.NewOrderedMap()
m.Set("foo", "bar")
m.Set("qux", 1.23)
m.Set(123, true)
m.Delete("qux")
for _, key := range m.Keys() {
value, _ := m.Get(key)
fmt.Println(key, value)
}
}
Output:
func (*OrderedMap) Back ¶
func (m *OrderedMap) Back() *Element
Back will return the element that is the last (most recent Set element). If there are no elements this will return nil.
func (*OrderedMap) Copy ¶
func (m *OrderedMap) Copy() *OrderedMap
Copy returns a new OrderedMap with the same elements. Using Copy while there are concurrent writes may mangle the result.
func (*OrderedMap) Delete ¶
func (m *OrderedMap) Delete(key interface{}) (didDelete bool)
Delete will remove a key from the map. It will return true if the key was removed (the key did exist).
func (*OrderedMap) Front ¶
func (m *OrderedMap) Front() *Element
Front will return the element that is the first (oldest Set element). If there are no elements this will return nil.
Example ¶
package main
import (
"fmt"
"github.com/elliotchance/orderedmap"
)
func main() {
m := orderedmap.NewOrderedMap()
m.Set(1, true)
m.Set(2, true)
for el := m.Front(); el != nil; el = el.Next() {
fmt.Println(el)
}
}
Output:
func (*OrderedMap) Get ¶
func (m *OrderedMap) Get(key interface{}) (interface{}, bool)
Get returns the value for a key. If the key does not exist, the second return parameter will be false and the value will be nil.
func (*OrderedMap) GetElement ¶
func (m *OrderedMap) GetElement(key interface{}) *Element
GetElement returns the element for a key. If the key does not exist, the pointer will be nil.
func (*OrderedMap) GetOrDefault ¶
func (m *OrderedMap) GetOrDefault(key, defaultValue interface{}) interface{}
GetOrDefault returns the value for a key. If the key does not exist, returns the default value instead.
func (*OrderedMap) Keys ¶
func (m *OrderedMap) Keys() (keys []interface{})
Keys returns all of the keys in the order they were inserted. If a key was replaced it will retain the same position. To ensure most recently set keys are always at the end you must always Delete before Set.
func (*OrderedMap) Len ¶
func (m *OrderedMap) Len() int
Len returns the number of elements in the map.
func (*OrderedMap) Set ¶
func (m *OrderedMap) Set(key, value interface{}) bool
Set will set (or replace) a value for a key. If the key was new, then true will be returned. The returned value will be false if the value was replaced (even if the value was the same).