Documentation ¶
Index ¶
- type AnyAnyMap
- func (that *AnyAnyMap) Clear()
- func (that *AnyAnyMap) Clone(safe ...bool) *AnyAnyMap
- func (that *AnyAnyMap) Contains(key interface{}) bool
- func (that *AnyAnyMap) FilterEmpty()
- func (that *AnyAnyMap) FilterNil()
- func (that *AnyAnyMap) Flip()
- func (that *AnyAnyMap) Get(key interface{}) (value interface{})
- func (that *AnyAnyMap) GetOrSet(key interface{}, value interface{}) interface{}
- func (that *AnyAnyMap) GetOrSetFunc(key interface{}, f func() interface{}) interface{}
- func (that *AnyAnyMap) GetOrSetFuncLock(key interface{}, f func() interface{}) interface{}
- func (that *AnyAnyMap) IsEmpty() bool
- func (that *AnyAnyMap) Iterator(f func(k interface{}, v interface{}) bool)
- func (that *AnyAnyMap) Keys() []interface{}
- func (that *AnyAnyMap) LockFunc(f func(m map[interface{}]interface{}))
- func (that *AnyAnyMap) Map() map[interface{}]interface{}
- func (that *AnyAnyMap) MapCopy() map[interface{}]interface{}
- func (that *AnyAnyMap) MarshalJSON() ([]byte, error)
- func (that *AnyAnyMap) Merge(other *AnyAnyMap)
- func (that *AnyAnyMap) Pop() (key, value interface{})
- func (that *AnyAnyMap) Pops(size int) map[interface{}]interface{}
- func (that *AnyAnyMap) RLockFunc(f func(m map[interface{}]interface{}))
- func (that *AnyAnyMap) Random() (key, value interface{}, exist bool)
- func (that *AnyAnyMap) Remove(key interface{}) (value interface{})
- func (that *AnyAnyMap) Removes(keys []interface{})
- func (that *AnyAnyMap) Replace(data map[interface{}]interface{})
- func (that *AnyAnyMap) Search(key interface{}) (value interface{}, found bool)
- func (that *AnyAnyMap) Set(key interface{}, value interface{})
- func (that *AnyAnyMap) SetIfNotExist(key interface{}, value interface{}) bool
- func (that *AnyAnyMap) SetIfNotExistFunc(key interface{}, f func() interface{}) bool
- func (that *AnyAnyMap) SetIfNotExistFuncLock(key interface{}, f func() interface{}) bool
- func (that *AnyAnyMap) Sets(data map[interface{}]interface{})
- func (that *AnyAnyMap) Size() int
- func (that *AnyAnyMap) String() string
- func (that *AnyAnyMap) UnmarshalJSON(b []byte) error
- func (that *AnyAnyMap) UnmarshalValue(value interface{}) (err error)
- func (that *AnyAnyMap) Values() []interface{}
- type HashMap
- type IntAnyMap
- func (that *IntAnyMap) Clear()
- func (that *IntAnyMap) Clone() *IntAnyMap
- func (that *IntAnyMap) Contains(key int) bool
- func (that *IntAnyMap) FilterEmpty()
- func (that *IntAnyMap) FilterNil()
- func (that *IntAnyMap) Flip()
- func (that *IntAnyMap) Get(key int) (value interface{})
- func (that *IntAnyMap) GetOrSet(key int, value interface{}) interface{}
- func (that *IntAnyMap) GetOrSetFunc(key int, f func() interface{}) interface{}
- func (that *IntAnyMap) GetOrSetFuncLock(key int, f func() interface{}) interface{}
- func (that *IntAnyMap) GetVar(key int) *gvar.Var
- func (that *IntAnyMap) GetVarOrSet(key int, value interface{}) *gvar.Var
- func (that *IntAnyMap) GetVarOrSetFunc(key int, f func() interface{}) *gvar.Var
- func (that *IntAnyMap) GetVarOrSetFuncLock(key int, f func() interface{}) *gvar.Var
- func (that *IntAnyMap) IsEmpty() bool
- func (that *IntAnyMap) Iterator(f func(k int, v interface{}) bool)
- func (that *IntAnyMap) Keys() []int
- func (that *IntAnyMap) LockFunc(f func(m map[int]interface{}))
- func (that *IntAnyMap) Map() map[int]interface{}
- func (that *IntAnyMap) MapCopy() map[int]interface{}
- func (that *IntAnyMap) MapStrAny() map[string]interface{}
- func (that *IntAnyMap) MarshalJSON() ([]byte, error)
- func (that *IntAnyMap) Merge(other *IntAnyMap)
- func (that *IntAnyMap) Pop() (key int, value interface{})
- func (that *IntAnyMap) Pops(size int) map[int]interface{}
- func (that *IntAnyMap) RLockFunc(f func(m map[int]interface{}))
- func (that *IntAnyMap) Remove(key int) (value interface{})
- func (that *IntAnyMap) Removes(keys []int)
- func (that *IntAnyMap) Replace(data map[int]interface{})
- func (that *IntAnyMap) Search(key int) (value interface{}, found bool)
- func (that *IntAnyMap) Set(key int, val interface{})
- func (that *IntAnyMap) SetIfNotExist(key int, value interface{}) bool
- func (that *IntAnyMap) SetIfNotExistFunc(key int, f func() interface{}) bool
- func (that *IntAnyMap) SetIfNotExistFuncLock(key int, f func() interface{}) bool
- func (that *IntAnyMap) Sets(data map[int]interface{})
- func (that *IntAnyMap) Size() int
- func (that *IntAnyMap) String() string
- func (that *IntAnyMap) UnmarshalJSON(b []byte) error
- func (that *IntAnyMap) UnmarshalValue(value interface{}) (err error)
- func (that *IntAnyMap) Values() []interface{}
- type IntIntMap
- func (that *IntIntMap) Clear()
- func (that *IntIntMap) Clone() *IntIntMap
- func (that *IntIntMap) Contains(key int) bool
- func (that *IntIntMap) FilterEmpty()
- func (that *IntIntMap) Flip()
- func (that *IntIntMap) Get(key int) (value int)
- func (that *IntIntMap) GetOrSet(key int, value int) int
- func (that *IntIntMap) GetOrSetFunc(key int, f func() int) int
- func (that *IntIntMap) GetOrSetFuncLock(key int, f func() int) int
- func (that *IntIntMap) IsEmpty() bool
- func (that *IntIntMap) Iterator(f func(k int, v int) bool)
- func (that *IntIntMap) Keys() []int
- func (that *IntIntMap) LockFunc(f func(m map[int]int))
- func (that *IntIntMap) Map() map[int]int
- func (that *IntIntMap) MapCopy() map[int]int
- func (that *IntIntMap) MapStrAny() map[string]interface{}
- func (that *IntIntMap) MarshalJSON() ([]byte, error)
- func (that *IntIntMap) Merge(other *IntIntMap)
- func (that *IntIntMap) Pop() (key, value int)
- func (that *IntIntMap) Pops(size int) map[int]int
- func (that *IntIntMap) RLockFunc(f func(m map[int]int))
- func (that *IntIntMap) Remove(key int) (value int)
- func (that *IntIntMap) Removes(keys []int)
- func (that *IntIntMap) Replace(data map[int]int)
- func (that *IntIntMap) Search(key int) (value int, found bool)
- func (that *IntIntMap) Set(key int, val int)
- func (that *IntIntMap) SetIfNotExist(key int, value int) bool
- func (that *IntIntMap) SetIfNotExistFunc(key int, f func() int) bool
- func (that *IntIntMap) SetIfNotExistFuncLock(key int, f func() int) bool
- func (that *IntIntMap) Sets(data map[int]int)
- func (that *IntIntMap) Size() int
- func (that *IntIntMap) String() string
- func (that *IntIntMap) UnmarshalJSON(b []byte) error
- func (that *IntIntMap) UnmarshalValue(value interface{}) (err error)
- func (that *IntIntMap) Values() []int
- type IntStrMap
- func (that *IntStrMap) Clear()
- func (that *IntStrMap) Clone() *IntStrMap
- func (that *IntStrMap) Contains(key int) bool
- func (that *IntStrMap) FilterEmpty()
- func (that *IntStrMap) Flip()
- func (that *IntStrMap) Get(key int) (value string)
- func (that *IntStrMap) GetOrSet(key int, value string) string
- func (that *IntStrMap) GetOrSetFunc(key int, f func() string) string
- func (that *IntStrMap) GetOrSetFuncLock(key int, f func() string) string
- func (that *IntStrMap) IsEmpty() bool
- func (that *IntStrMap) Iterator(f func(k int, v string) bool)
- func (that *IntStrMap) Keys() []int
- func (that *IntStrMap) LockFunc(f func(m map[int]string))
- func (that *IntStrMap) Map() map[int]string
- func (that *IntStrMap) MapCopy() map[int]string
- func (that *IntStrMap) MapStrAny() map[string]interface{}
- func (that *IntStrMap) MarshalJSON() ([]byte, error)
- func (that *IntStrMap) Merge(other *IntStrMap)
- func (that *IntStrMap) Pop() (key int, value string)
- func (that *IntStrMap) Pops(size int) map[int]string
- func (that *IntStrMap) RLockFunc(f func(m map[int]string))
- func (that *IntStrMap) Remove(key int) (value string)
- func (that *IntStrMap) Removes(keys []int)
- func (that *IntStrMap) Replace(data map[int]string)
- func (that *IntStrMap) Search(key int) (value string, found bool)
- func (that *IntStrMap) Set(key int, val string)
- func (that *IntStrMap) SetIfNotExist(key int, value string) bool
- func (that *IntStrMap) SetIfNotExistFunc(key int, f func() string) bool
- func (that *IntStrMap) SetIfNotExistFuncLock(key int, f func() string) bool
- func (that *IntStrMap) Sets(data map[int]string)
- func (that *IntStrMap) Size() int
- func (that *IntStrMap) String() string
- func (that *IntStrMap) UnmarshalJSON(b []byte) error
- func (that *IntStrMap) UnmarshalValue(value interface{}) (err error)
- func (that *IntStrMap) Values() []string
- type ListMap
- func (m *ListMap) Clear()
- func (m *ListMap) Clone(safe ...bool) *ListMap
- func (m *ListMap) Contains(key interface{}) (ok bool)
- func (m *ListMap) FilterEmpty()
- func (m *ListMap) Flip()
- func (m *ListMap) Get(key interface{}) (value interface{})
- func (m *ListMap) GetOrSet(key interface{}, value interface{}) interface{}
- func (m *ListMap) GetOrSetFunc(key interface{}, f func() interface{}) interface{}
- func (m *ListMap) GetOrSetFuncLock(key interface{}, f func() interface{}) interface{}
- func (m *ListMap) GetVar(key interface{}) *dvar.Var
- func (m *ListMap) GetVarOrSet(key interface{}, value interface{}) *dvar.Var
- func (m *ListMap) GetVarOrSetFunc(key interface{}, f func() interface{}) *dvar.Var
- func (m *ListMap) GetVarOrSetFuncLock(key interface{}, f func() interface{}) *dvar.Var
- func (m *ListMap) IsEmpty() bool
- func (m *ListMap) Iterator(f func(key, value interface{}) bool)
- func (m *ListMap) IteratorAsc(f func(key interface{}, value interface{}) bool)
- func (m *ListMap) IteratorDesc(f func(key interface{}, value interface{}) bool)
- func (m *ListMap) Keys() []interface{}
- func (m *ListMap) Map() map[interface{}]interface{}
- func (m *ListMap) MapStrAny() map[string]interface{}
- func (m *ListMap) MarshalJSON() ([]byte, error)
- func (m *ListMap) Merge(other *ListMap)
- func (m *ListMap) Pop() (key, value interface{})
- func (m *ListMap) Pops(size int) map[interface{}]interface{}
- func (m *ListMap) Remove(key interface{}) (value interface{})
- func (m *ListMap) Removes(keys []interface{})
- func (m *ListMap) Replace(data map[interface{}]interface{})
- func (m *ListMap) Search(key interface{}) (value interface{}, found bool)
- func (m *ListMap) Set(key interface{}, value interface{})
- func (m *ListMap) SetIfNotExist(key interface{}, value interface{}) bool
- func (m *ListMap) SetIfNotExistFunc(key interface{}, f func() interface{}) bool
- func (m *ListMap) SetIfNotExistFuncLock(key interface{}, f func() interface{}) bool
- func (m *ListMap) Sets(data map[interface{}]interface{})
- func (m *ListMap) Size() (size int)
- func (m *ListMap) String() string
- func (m *ListMap) UnmarshalJSON(b []byte) error
- func (m *ListMap) UnmarshalValue(value interface{}) (err error)
- func (m *ListMap) Values() []interface{}
- type Map
- type StrAnyMap
- func (that *StrAnyMap) Clear()
- func (that *StrAnyMap) Clone() *StrAnyMap
- func (that *StrAnyMap) Contains(key string) bool
- func (that *StrAnyMap) FilterEmpty()
- func (that *StrAnyMap) FilterNil()
- func (that *StrAnyMap) Flip()
- func (that *StrAnyMap) Get(key string) (value interface{})
- func (that *StrAnyMap) GetOrSet(key string, value interface{}) interface{}
- func (that *StrAnyMap) GetOrSetFunc(key string, f func() interface{}) interface{}
- func (that *StrAnyMap) GetOrSetFuncLock(key string, f func() interface{}) interface{}
- func (that *StrAnyMap) GetVar(key string) *dvar.Var
- func (that *StrAnyMap) GetVarOrSet(key string, value interface{}) *dvar.Var
- func (that *StrAnyMap) GetVarOrSetFunc(key string, f func() interface{}) *dvar.Var
- func (that *StrAnyMap) GetVarOrSetFuncLock(key string, f func() interface{}) *dvar.Var
- func (that *StrAnyMap) IsEmpty() bool
- func (that *StrAnyMap) Iterator(f func(k string, v interface{}) bool)
- func (that *StrAnyMap) Keys() []string
- func (that *StrAnyMap) LockFunc(f func(m map[string]interface{}))
- func (that *StrAnyMap) Map() map[string]interface{}
- func (that *StrAnyMap) MapCopy() map[string]interface{}
- func (that *StrAnyMap) MapStrAny() map[string]interface{}
- func (that *StrAnyMap) MarshalJSON() ([]byte, error)
- func (that *StrAnyMap) Merge(other *StrAnyMap)
- func (that *StrAnyMap) Pop() (key string, value interface{})
- func (that *StrAnyMap) Pops(size int) map[string]interface{}
- func (that *StrAnyMap) RLockFunc(f func(m map[string]interface{}))
- func (that *StrAnyMap) Remove(key string) (value interface{})
- func (that *StrAnyMap) Removes(keys []string)
- func (that *StrAnyMap) Replace(data map[string]interface{})
- func (that *StrAnyMap) Search(key string) (value interface{}, found bool)
- func (that *StrAnyMap) Set(key string, val interface{})
- func (that *StrAnyMap) SetIfNotExist(key string, value interface{}) bool
- func (that *StrAnyMap) SetIfNotExistFunc(key string, f func() interface{}) bool
- func (that *StrAnyMap) SetIfNotExistFuncLock(key string, f func() interface{}) bool
- func (that *StrAnyMap) Sets(data map[string]interface{})
- func (that *StrAnyMap) Size() int
- func (that *StrAnyMap) String() string
- func (that *StrAnyMap) UnmarshalJSON(b []byte) error
- func (that *StrAnyMap) UnmarshalValue(value interface{}) (err error)
- func (that *StrAnyMap) Values() []interface{}
- type StrIntMap
- func (that *StrIntMap) Clear()
- func (that *StrIntMap) Clone() *StrIntMap
- func (that *StrIntMap) Contains(key string) bool
- func (that *StrIntMap) FilterEmpty()
- func (that *StrIntMap) Flip()
- func (that *StrIntMap) Get(key string) (value int)
- func (that *StrIntMap) GetOrSet(key string, value int) int
- func (that *StrIntMap) GetOrSetFunc(key string, f func() int) int
- func (that *StrIntMap) GetOrSetFuncLock(key string, f func() int) int
- func (that *StrIntMap) IsEmpty() bool
- func (that *StrIntMap) Iterator(f func(k string, v int) bool)
- func (that *StrIntMap) Keys() []string
- func (that *StrIntMap) LockFunc(f func(m map[string]int))
- func (that *StrIntMap) Map() map[string]int
- func (that *StrIntMap) MapCopy() map[string]int
- func (that *StrIntMap) MapStrAny() map[string]interface{}
- func (that *StrIntMap) MarshalJSON() ([]byte, error)
- func (that *StrIntMap) Merge(other *StrIntMap)
- func (that *StrIntMap) Pop() (key string, value int)
- func (that *StrIntMap) Pops(size int) map[string]int
- func (that *StrIntMap) RLockFunc(f func(m map[string]int))
- func (that *StrIntMap) Remove(key string) (value int)
- func (that *StrIntMap) Removes(keys []string)
- func (that *StrIntMap) Replace(data map[string]int)
- func (that *StrIntMap) Search(key string) (value int, found bool)
- func (that *StrIntMap) Set(key string, val int)
- func (that *StrIntMap) SetIfNotExist(key string, value int) bool
- func (that *StrIntMap) SetIfNotExistFunc(key string, f func() int) bool
- func (that *StrIntMap) SetIfNotExistFuncLock(key string, f func() int) bool
- func (that *StrIntMap) Sets(data map[string]int)
- func (that *StrIntMap) Size() int
- func (that *StrIntMap) String() string
- func (that *StrIntMap) UnmarshalJSON(b []byte) error
- func (that *StrIntMap) UnmarshalValue(value interface{}) (err error)
- func (that *StrIntMap) Values() []int
- type StrStrMap
- func (that *StrStrMap) Clear()
- func (that *StrStrMap) Clone() *StrStrMap
- func (that *StrStrMap) Contains(key string) bool
- func (that *StrStrMap) FilterEmpty()
- func (that *StrStrMap) Flip()
- func (that *StrStrMap) Get(key string) (value string)
- func (that *StrStrMap) GetOrSet(key string, value string) string
- func (that *StrStrMap) GetOrSetFunc(key string, f func() string) string
- func (that *StrStrMap) GetOrSetFuncLock(key string, f func() string) string
- func (that *StrStrMap) IsEmpty() bool
- func (that *StrStrMap) Iterator(f func(k string, v string) bool)
- func (that *StrStrMap) Keys() []string
- func (that *StrStrMap) LockFunc(f func(m map[string]string))
- func (that *StrStrMap) Map() map[string]string
- func (that *StrStrMap) MapCopy() map[string]string
- func (that *StrStrMap) MapStrAny() map[string]interface{}
- func (that *StrStrMap) MarshalJSON() ([]byte, error)
- func (that *StrStrMap) Merge(other *StrStrMap)
- func (that *StrStrMap) Pop() (key, value string)
- func (that *StrStrMap) Pops(size int) map[string]string
- func (that *StrStrMap) RLockFunc(f func(m map[string]string))
- func (that *StrStrMap) Remove(key string) (value string)
- func (that *StrStrMap) Removes(keys []string)
- func (that *StrStrMap) Replace(data map[string]string)
- func (that *StrStrMap) Search(key string) (value string, found bool)
- func (that *StrStrMap) Set(key string, val string)
- func (that *StrStrMap) SetIfNotExist(key string, value string) bool
- func (that *StrStrMap) SetIfNotExistFunc(key string, f func() string) bool
- func (that *StrStrMap) SetIfNotExistFuncLock(key string, f func() string) bool
- func (that *StrStrMap) Sets(data map[string]string)
- func (that *StrStrMap) Size() int
- func (that *StrStrMap) String() string
- func (that *StrStrMap) UnmarshalJSON(b []byte) error
- func (that *StrStrMap) UnmarshalValue(value interface{}) (err error)
- func (that *StrStrMap) Values() []string
- type TreeMap
Examples ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type AnyAnyMap ¶
type AnyAnyMap struct {
// contains filtered or unexported fields
}
AnyAnyMap 并发安全的hash字典表
func NewAnyAnyMapFrom ¶
NewAnyAnyMapFrom 通过map创建hash表
func (*AnyAnyMap) FilterEmpty ¶
func (that *AnyAnyMap) FilterEmpty()
FilterEmpty 清除空值
Example ¶
package main import ( "fmt" "github.com/osgochina/donkeygo/container/dmap" "github.com/osgochina/donkeygo/frame/d" ) func main() { m := dmap.NewFrom(d.MapAnyAny{ "k1": "", "k2": nil, "k3": 0, "k4": 1, }) m.FilterEmpty() fmt.Println(m.Map()) // May Output: // map[k4:1] }
Output:
func (*AnyAnyMap) FilterNil ¶
func (that *AnyAnyMap) FilterNil()
FilterNil 清除nil值
Example ¶
package main import ( "fmt" "github.com/osgochina/donkeygo/container/dmap" "github.com/osgochina/donkeygo/frame/d" ) func main() { m := dmap.NewFrom(d.MapAnyAny{ "k1": "", "k2": nil, "k3": 0, "k4": 1, }) m.FilterNil() fmt.Println(m.Map()) // May Output: // map[k1: k3:0 k4:1] }
Output:
func (*AnyAnyMap) Flip ¶
func (that *AnyAnyMap) Flip()
Flip 翻转key和value
Example ¶
package main import ( "fmt" "github.com/osgochina/donkeygo/container/dmap" "github.com/osgochina/donkeygo/frame/d" ) func main() { var m dmap.Map m.Sets(d.MapAnyAny{ "k1": "v1", "k2": "v2", }) m.Flip() fmt.Println(m.Map()) // May Output: // map[v1:k1 v2:k2] }
Output:
func (*AnyAnyMap) GetOrSet ¶
func (that *AnyAnyMap) GetOrSet(key interface{}, value interface{}) interface{}
GetOrSet 查找key对应的值是否存在,如果未找到,则写入
func (*AnyAnyMap) GetOrSetFunc ¶
func (that *AnyAnyMap) GetOrSetFunc(key interface{}, f func() interface{}) interface{}
GetOrSetFunc 获取指定key的值,如果不存在,则通过方法f生成该值,并写入到map,然后返回 生成新值的方法未使用到锁,不会造成阻塞
func (*AnyAnyMap) GetOrSetFuncLock ¶
func (that *AnyAnyMap) GetOrSetFuncLock(key interface{}, f func() interface{}) interface{}
GetOrSetFuncLock 与上面GetOrSetFunc方法的区别,在乎生成值的时候是否使用锁,此方法生成值的时候会使用到做,传入的方法不能阻塞, 不然会造成map加锁不可读写
func (*AnyAnyMap) Keys ¶
func (that *AnyAnyMap) Keys() []interface{}
Keys 返回map的所有key
Example ¶
package main import ( "fmt" "github.com/osgochina/donkeygo/container/dmap" "github.com/osgochina/donkeygo/frame/d" ) func main() { var m dmap.Map m.Sets(d.MapAnyAny{ "k1": "v1", "k2": "v2", "k3": "v3", "k4": "v4", }) fmt.Println(m.Keys()) fmt.Println(m.Values()) // May Output: // [k1 k2 k3 k4] // [v2 v3 v4 v1] }
Output:
func (*AnyAnyMap) LockFunc ¶
func (that *AnyAnyMap) LockFunc(f func(m map[interface{}]interface{}))
LockFunc 加锁执行方法操作数据
func (*AnyAnyMap) MapCopy ¶
func (that *AnyAnyMap) MapCopy() map[interface{}]interface{}
MapCopy copy一份map数据
func (*AnyAnyMap) MarshalJSON ¶
MarshalJSON json序列化
func (*AnyAnyMap) Merge ¶
Merge 合并两个map
Example ¶
package main import ( "fmt" "github.com/osgochina/donkeygo/container/dmap" ) func main() { var m1, m2 dmap.Map m1.Set("key1", "val1") m2.Set("key2", "val2") m1.Merge(&m2) fmt.Println(m1.Map()) // May Output: // map[key1:val1 key2:val2] }
Output:
func (*AnyAnyMap) Pop ¶
func (that *AnyAnyMap) Pop() (key, value interface{})
Pop 随机获取一个字典key,value
Example ¶
package main import ( "fmt" "github.com/osgochina/donkeygo/container/dmap" "github.com/osgochina/donkeygo/frame/d" ) func main() { var m dmap.Map m.Sets(d.MapAnyAny{ "k1": "v1", "k2": "v2", "k3": "v3", "k4": "v4", }) fmt.Println(m.Pop()) fmt.Println(m.Pops(2)) fmt.Println(m.Size()) // May Output: // k1 v1 // map[k2:v2 k4:v4] // 1 }
Output:
func (*AnyAnyMap) Pops ¶
Pops 随机获取指定size的字典值,-1表示获取全部
Example ¶
package main import ( "fmt" "github.com/osgochina/donkeygo/container/dmap" "github.com/osgochina/donkeygo/frame/d" ) func main() { var m dmap.Map m.Sets(d.MapAnyAny{ "k1": "v1", "k2": "v2", "k3": "v3", "k4": "v4", }) fmt.Println(m.Pop()) fmt.Println(m.Pops(2)) fmt.Println(m.Size()) // May Output: // k1 v1 // map[k2:v2 k4:v4] // 1 }
Output:
func (*AnyAnyMap) RLockFunc ¶
func (that *AnyAnyMap) RLockFunc(f func(m map[interface{}]interface{}))
RLockFunc 加读锁执行方法操作数据
func (*AnyAnyMap) Remove ¶
func (that *AnyAnyMap) Remove(key interface{}) (value interface{})
Remove 移除指定的key,并返回它对应的值
func (*AnyAnyMap) Replace ¶
func (that *AnyAnyMap) Replace(data map[interface{}]interface{})
Replace 替换map
func (*AnyAnyMap) Set ¶
func (that *AnyAnyMap) Set(key interface{}, value interface{})
Set 设置key value
func (*AnyAnyMap) SetIfNotExist ¶
SetIfNotExist 如果map中不存在该key,则设置
Example ¶
package main import ( "fmt" "github.com/osgochina/donkeygo/container/dmap" ) func main() { var m dmap.Map fmt.Println(m.SetIfNotExist("k1", "v1")) fmt.Println(m.SetIfNotExist("k1", "v1")) fmt.Println(m.Map()) }
Output: true false map[k1:v1]
func (*AnyAnyMap) SetIfNotExistFunc ¶
SetIfNotExistFunc 如果map中不存在key,则调用方法f生成,生成的时候未加锁
func (*AnyAnyMap) SetIfNotExistFuncLock ¶
SetIfNotExistFuncLock 如果map中不存在key,则调用方法f生成,生成的时候加锁
func (*AnyAnyMap) UnmarshalJSON ¶
UnmarshalJSON json反序列化
func (*AnyAnyMap) UnmarshalValue ¶
func (*AnyAnyMap) Values ¶
func (that *AnyAnyMap) Values() []interface{}
Values 返回map所有的值
Example ¶
package main import ( "fmt" "github.com/osgochina/donkeygo/container/dmap" "github.com/osgochina/donkeygo/frame/d" ) func main() { var m dmap.Map m.Sets(d.MapAnyAny{ "k1": "v1", "k2": "v2", "k3": "v3", "k4": "v4", }) fmt.Println(m.Keys()) fmt.Println(m.Values()) // May Output: // [k1 k2 k3 k4] // [v2 v3 v4 v1] }
Output:
type IntAnyMap ¶ added in v0.0.5
type IntAnyMap struct {
// contains filtered or unexported fields
}
func NewIntAnyMap ¶ added in v0.0.5
NewIntAnyMap 创建key值为int类型的hash表
func NewIntAnyMapFrom ¶ added in v0.0.5
NewIntAnyMapFrom 通过基础数据格式创建map
func (*IntAnyMap) Clear ¶ added in v0.0.5
func (that *IntAnyMap) Clear()
Clear deletes all data of the map, it will remake a new underlying data map.
func (*IntAnyMap) Contains ¶ added in v0.0.5
Contains checks whether a key exists. It returns true if the <key> exists, or else false.
func (*IntAnyMap) FilterEmpty ¶ added in v0.0.5
func (that *IntAnyMap) FilterEmpty()
FilterEmpty 删除空值
func (*IntAnyMap) Flip ¶ added in v0.0.5
func (that *IntAnyMap) Flip()
Flip exchanges key-value of the map to value-key.
func (*IntAnyMap) GetOrSet ¶ added in v0.0.5
GetOrSet returns the value by key, or sets value with given <value> if it does not exist and then returns this value.
func (*IntAnyMap) GetOrSetFunc ¶ added in v0.0.5
GetOrSetFunc returns the value by key, or sets value with returned value of callback function <f> if it does not exist and returns this value.
func (*IntAnyMap) GetOrSetFuncLock ¶ added in v0.0.5
GetOrSetFuncLock returns the value by key, or sets value with returned value of callback function <f> if it does not exist and returns this value.
GetOrSetFuncLock differs with GetOrSetFunc function is that it executes function <f> with mutex.Lock of the hash map.
func (*IntAnyMap) GetVar ¶ added in v0.0.5
GetVar returns a Var with the value by given <key>. The returned Var is un-concurrent safe.
func (*IntAnyMap) GetVarOrSet ¶ added in v0.0.5
GetVarOrSet returns a Var with result from GetVarOrSet. The returned Var is un-concurrent safe.
func (*IntAnyMap) GetVarOrSetFunc ¶ added in v0.0.5
GetVarOrSetFunc returns a Var with result from GetOrSetFunc. The returned Var is un-concurrent safe.
func (*IntAnyMap) GetVarOrSetFuncLock ¶ added in v0.0.5
GetVarOrSetFuncLock returns a Var with result from GetOrSetFuncLock. The returned Var is un-concurrent safe.
func (*IntAnyMap) IsEmpty ¶ added in v0.0.5
IsEmpty checks whether the map is empty. It returns true if map is empty, or else false.
func (*IntAnyMap) LockFunc ¶ added in v0.0.5
LockFunc locks writing with given callback function <f> within RWMutex.Lock.
func (*IntAnyMap) MarshalJSON ¶ added in v0.0.5
MarshalJSON implements the interface MarshalJSON for json.Marshal.
func (*IntAnyMap) Merge ¶ added in v0.0.5
Merge merges two hash maps. The <other> map will be merged into the map <m>.
func (*IntAnyMap) Pops ¶ added in v0.0.5
Pops retrieves and deletes <size> items from the map. It returns all items if size == -1.
func (*IntAnyMap) RLockFunc ¶ added in v0.0.5
RLockFunc locks reading with given callback function <f> within RWMutex.RLock.
func (*IntAnyMap) Remove ¶ added in v0.0.5
Remove deletes value from map by given <key>, and return this deleted value.
func (*IntAnyMap) SetIfNotExist ¶ added in v0.0.5
SetIfNotExist sets <value> to the map if the <key> does not exist, and then returns true. It returns false if <key> exists, and <value> would be ignored.
func (*IntAnyMap) SetIfNotExistFunc ¶ added in v0.0.5
SetIfNotExistFunc sets value with return value of callback function <f>, and then returns true. It returns false if <key> exists, and <value> would be ignored.
func (*IntAnyMap) SetIfNotExistFuncLock ¶ added in v0.0.5
SetIfNotExistFuncLock sets value with return value of callback function <f>, and then returns true. It returns false if <key> exists, and <value> would be ignored.
SetIfNotExistFuncLock differs with SetIfNotExistFunc function is that it executes function <f> with mutex.Lock of the hash map.
func (*IntAnyMap) UnmarshalJSON ¶ added in v0.0.5
UnmarshalJSON implements the interface UnmarshalJSON for json.Unmarshal.
func (*IntAnyMap) UnmarshalValue ¶ added in v0.0.5
UnmarshalValue is an interface implement which sets any type of value for map.
type IntIntMap ¶ added in v0.0.9
type IntIntMap struct {
// contains filtered or unexported fields
}
func NewIntIntMap ¶ added in v0.0.9
NewIntIntMap returns an empty IntIntMap object. The parameter <safe> is used to specify whether using map in concurrent-safety, which is false in default.
func NewIntIntMapFrom ¶ added in v0.0.9
NewIntIntMapFrom creates and returns a hash map from given map <data>. Note that, the param <data> map will be set as the underlying data map(no deep copy), there might be some concurrent-safe issues when changing the map outside.
func (*IntIntMap) Clear ¶ added in v0.0.9
func (that *IntIntMap) Clear()
Clear deletes all data of the map, it will remake a new underlying data map.
func (*IntIntMap) Clone ¶ added in v0.0.9
Clone returns a new hash map with copy of current map data.
func (*IntIntMap) Contains ¶ added in v0.0.9
Contains checks whether a key exists. It returns true if the <key> exists, or else false.
func (*IntIntMap) FilterEmpty ¶ added in v0.0.9
func (that *IntIntMap) FilterEmpty()
FilterEmpty deletes all key-value pair of which the value is empty. Values like: 0, nil, false, "", len(slice/map/chan) == 0 are considered empty.
func (*IntIntMap) Flip ¶ added in v0.0.9
func (that *IntIntMap) Flip()
Flip exchanges key-value of the map to value-key.
func (*IntIntMap) GetOrSet ¶ added in v0.0.9
GetOrSet returns the value by key, or sets value with given <value> if it does not exist and then returns this value.
func (*IntIntMap) GetOrSetFunc ¶ added in v0.0.9
GetOrSetFunc returns the value by key, or sets value with returned value of callback function <f> if it does not exist and returns this value.
func (*IntIntMap) GetOrSetFuncLock ¶ added in v0.0.9
GetOrSetFuncLock returns the value by key, or sets value with returned value of callback function <f> if it does not exist and returns this value.
GetOrSetFuncLock differs with GetOrSetFunc function is that it executes function <f> with mutex.Lock of the hash map.
func (*IntIntMap) IsEmpty ¶ added in v0.0.9
IsEmpty checks whether the map is empty. It returns true if map is empty, or else false.
func (*IntIntMap) Iterator ¶ added in v0.0.9
Iterator iterates the hash map readonly with custom callback function <f>. If <f> returns true, then it continues iterating; or false to stop.
func (*IntIntMap) LockFunc ¶ added in v0.0.9
LockFunc locks writing with given callback function <f> within RWMutex.Lock.
func (*IntIntMap) Map ¶ added in v0.0.9
Map returns the underlying data map. Note that, if it's in concurrent-safe usage, it returns a copy of underlying data, or else a pointer to the underlying data.
func (*IntIntMap) MapCopy ¶ added in v0.0.9
MapCopy returns a copy of the underlying data of the hash map.
func (*IntIntMap) MapStrAny ¶ added in v0.0.9
MapStrAny returns a copy of the underlying data of the map as map[string]interface{}.
func (*IntIntMap) MarshalJSON ¶ added in v0.0.9
MarshalJSON implements the interface MarshalJSON for json.Marshal.
func (*IntIntMap) Merge ¶ added in v0.0.9
Merge merges two hash maps. The <other> map will be merged into the map <m>.
func (*IntIntMap) Pops ¶ added in v0.0.9
Pops retrieves and deletes <size> items from the map. It returns all items if size == -1.
func (*IntIntMap) RLockFunc ¶ added in v0.0.9
RLockFunc locks reading with given callback function <f> within RWMutex.RLock.
func (*IntIntMap) Remove ¶ added in v0.0.9
Remove deletes value from map by given <key>, and return this deleted value.
func (*IntIntMap) Search ¶ added in v0.0.9
Search searches the map with given <key>. Second return parameter <found> is true if key was found, otherwise false.
func (*IntIntMap) SetIfNotExist ¶ added in v0.0.9
SetIfNotExist sets <value> to the map if the <key> does not exist, and then returns true. It returns false if <key> exists, and <value> would be ignored.
func (*IntIntMap) SetIfNotExistFunc ¶ added in v0.0.9
SetIfNotExistFunc sets value with return value of callback function <f>, and then returns true. It returns false if <key> exists, and <value> would be ignored.
func (*IntIntMap) SetIfNotExistFuncLock ¶ added in v0.0.9
SetIfNotExistFuncLock sets value with return value of callback function <f>, and then returns true. It returns false if <key> exists, and <value> would be ignored.
SetIfNotExistFuncLock differs with SetIfNotExistFunc function is that it executes function <f> with mutex.Lock of the hash map.
func (*IntIntMap) UnmarshalJSON ¶ added in v0.0.9
UnmarshalJSON implements the interface UnmarshalJSON for json.Unmarshal.
func (*IntIntMap) UnmarshalValue ¶ added in v0.0.9
UnmarshalValue is an interface implement which sets any type of value for map.
type IntStrMap ¶ added in v0.0.9
type IntStrMap struct {
// contains filtered or unexported fields
}
func NewIntStrMap ¶ added in v0.0.9
NewIntStrMap returns an empty IntStrMap object. The parameter <safe> is used to specify whether using map in concurrent-safety, which is false in default.
func NewIntStrMapFrom ¶ added in v0.0.9
NewIntStrMapFrom creates and returns a hash map from given map <data>. Note that, the param <data> map will be set as the underlying data map(no deep copy), there might be some concurrent-safe issues when changing the map outside.
func (*IntStrMap) Clear ¶ added in v0.0.9
func (that *IntStrMap) Clear()
Clear deletes all data of the map, it will remake a new underlying data map.
func (*IntStrMap) Clone ¶ added in v0.0.9
Clone returns a new hash map with copy of current map data.
func (*IntStrMap) Contains ¶ added in v0.0.9
Contains checks whether a key exists. It returns true if the <key> exists, or else false.
func (*IntStrMap) FilterEmpty ¶ added in v0.0.9
func (that *IntStrMap) FilterEmpty()
FilterEmpty deletes all key-value pair of which the value is empty. Values like: 0, nil, false, "", len(slice/map/chan) == 0 are considered empty.
func (*IntStrMap) Flip ¶ added in v0.0.9
func (that *IntStrMap) Flip()
Flip exchanges key-value of the map to value-key.
func (*IntStrMap) GetOrSet ¶ added in v0.0.9
GetOrSet returns the value by key, or sets value with given <value> if it does not exist and then returns this value.
func (*IntStrMap) GetOrSetFunc ¶ added in v0.0.9
GetOrSetFunc returns the value by key, or sets value with returned value of callback function <f> if it does not exist and returns this value.
func (*IntStrMap) GetOrSetFuncLock ¶ added in v0.0.9
GetOrSetFuncLock returns the value by key, or sets value with returned value of callback function <f> if it does not exist and returns this value.
GetOrSetFuncLock differs with GetOrSetFunc function is that it executes function <f> with mutex.Lock of the hash map.
func (*IntStrMap) IsEmpty ¶ added in v0.0.9
IsEmpty checks whether the map is empty. It returns true if map is empty, or else false.
func (*IntStrMap) Iterator ¶ added in v0.0.9
Iterator iterates the hash map readonly with custom callback function <f>. If <f> returns true, then it continues iterating; or false to stop.
func (*IntStrMap) LockFunc ¶ added in v0.0.9
LockFunc locks writing with given callback function <f> within RWMutex.Lock.
func (*IntStrMap) Map ¶ added in v0.0.9
Map returns the underlying data map. Note that, if it's in concurrent-safe usage, it returns a copy of underlying data, or else a pointer to the underlying data.
func (*IntStrMap) MapCopy ¶ added in v0.0.9
MapCopy returns a copy of the underlying data of the hash map.
func (*IntStrMap) MapStrAny ¶ added in v0.0.9
MapStrAny returns a copy of the underlying data of the map as map[string]interface{}.
func (*IntStrMap) MarshalJSON ¶ added in v0.0.9
MarshalJSON implements the interface MarshalJSON for json.Marshal.
func (*IntStrMap) Merge ¶ added in v0.0.9
Merge merges two hash maps. The <other> map will be merged into the map <m>.
func (*IntStrMap) Pops ¶ added in v0.0.9
Pops retrieves and deletes <size> items from the map. It returns all items if size == -1.
func (*IntStrMap) RLockFunc ¶ added in v0.0.9
RLockFunc locks reading with given callback function <f> within RWMutex.RLock.
func (*IntStrMap) Remove ¶ added in v0.0.9
Remove deletes value from map by given <key>, and return this deleted value.
func (*IntStrMap) Search ¶ added in v0.0.9
Search searches the map with given <key>. Second return parameter <found> is true if key was found, otherwise false.
func (*IntStrMap) SetIfNotExist ¶ added in v0.0.9
SetIfNotExist sets <value> to the map if the <key> does not exist, and then returns true. It returns false if <key> exists, and <value> would be ignored.
func (*IntStrMap) SetIfNotExistFunc ¶ added in v0.0.9
SetIfNotExistFunc sets value with return value of callback function <f>, and then returns true. It returns false if <key> exists, and <value> would be ignored.
func (*IntStrMap) SetIfNotExistFuncLock ¶ added in v0.0.9
SetIfNotExistFuncLock sets value with return value of callback function <f>, and then returns true. It returns false if <key> exists, and <value> would be ignored.
SetIfNotExistFuncLock differs with SetIfNotExistFunc function is that it executes function <f> with mutex.Lock of the hash map.
func (*IntStrMap) UnmarshalJSON ¶ added in v0.0.9
UnmarshalJSON implements the interface UnmarshalJSON for json.Unmarshal.
func (*IntStrMap) UnmarshalValue ¶ added in v0.0.9
UnmarshalValue is an interface implement which sets any type of value for map.
type ListMap ¶ added in v0.0.9
type ListMap struct {
// contains filtered or unexported fields
}
func NewListMap ¶ added in v0.0.9
NewListMap returns an empty link map. ListMap is backed by a hash table to store values and doubly-linked list to store ordering. The parameter <safe> is used to specify whether using map in concurrent-safety, which is false in default.
func NewListMapFrom ¶ added in v0.0.9
NewListMapFrom returns a link map from given map <data>. Note that, the param <data> map will be set as the underlying data map(no deep copy), there might be some concurrent-safe issues when changing the map outside.
func (*ListMap) Clear ¶ added in v0.0.9
func (m *ListMap) Clear()
Clear deletes all data of the map, it will remake a new underlying data map.
func (*ListMap) Contains ¶ added in v0.0.9
Contains checks whether a key exists. It returns true if the <key> exists, or else false.
func (*ListMap) FilterEmpty ¶ added in v0.0.9
func (m *ListMap) FilterEmpty()
FilterEmpty deletes all key-value pair of which the value is empty.
func (*ListMap) Flip ¶ added in v0.0.9
func (m *ListMap) Flip()
Flip exchanges key-value of the map to value-key.
func (*ListMap) Get ¶ added in v0.0.9
func (m *ListMap) Get(key interface{}) (value interface{})
Get returns the value by given <key>.
func (*ListMap) GetOrSet ¶ added in v0.0.9
func (m *ListMap) GetOrSet(key interface{}, value interface{}) interface{}
GetOrSet returns the value by key, or sets value with given <value> if it does not exist and then returns this value.
func (*ListMap) GetOrSetFunc ¶ added in v0.0.9
func (m *ListMap) GetOrSetFunc(key interface{}, f func() interface{}) interface{}
GetOrSetFunc returns the value by key, or sets value with returned value of callback function <f> if it does not exist and then returns this value.
func (*ListMap) GetOrSetFuncLock ¶ added in v0.0.9
func (m *ListMap) GetOrSetFuncLock(key interface{}, f func() interface{}) interface{}
GetOrSetFuncLock returns the value by key, or sets value with returned value of callback function <f> if it does not exist and then returns this value.
GetOrSetFuncLock differs with GetOrSetFunc function is that it executes function <f> with mutex.Lock of the map.
func (*ListMap) GetVar ¶ added in v0.0.9
GetVar returns a Var with the value by given <key>. The returned Var is un-concurrent safe.
func (*ListMap) GetVarOrSet ¶ added in v0.0.9
GetVarOrSet returns a Var with result from GetVarOrSet. The returned Var is un-concurrent safe.
func (*ListMap) GetVarOrSetFunc ¶ added in v0.0.9
GetVarOrSetFunc returns a Var with result from GetOrSetFunc. The returned Var is un-concurrent safe.
func (*ListMap) GetVarOrSetFuncLock ¶ added in v0.0.9
GetVarOrSetFuncLock returns a Var with result from GetOrSetFuncLock. The returned Var is un-concurrent safe.
func (*ListMap) IsEmpty ¶ added in v0.0.9
IsEmpty checks whether the map is empty. It returns true if map is empty, or else false.
func (*ListMap) IteratorAsc ¶ added in v0.0.9
IteratorAsc iterates the map readonly in ascending order with given callback function <f>. If <f> returns true, then it continues iterating; or false to stop.
func (*ListMap) IteratorDesc ¶ added in v0.0.9
IteratorDesc iterates the map readonly in descending order with given callback function <f>. If <f> returns true, then it continues iterating; or false to stop.
func (*ListMap) Keys ¶ added in v0.0.9
func (m *ListMap) Keys() []interface{}
Keys returns all keys of the map as a slice in ascending order.
func (*ListMap) Map ¶ added in v0.0.9
func (m *ListMap) Map() map[interface{}]interface{}
Map returns a copy of the underlying data of the map.
func (*ListMap) MapStrAny ¶ added in v0.0.9
MapStrAny returns a copy of the underlying data of the map as map[string]interface{}.
func (*ListMap) MarshalJSON ¶ added in v0.0.9
MarshalJSON implements the interface MarshalJSON for json.Marshal.
func (*ListMap) Merge ¶ added in v0.0.9
Merge merges two link maps. The <other> map will be merged into the map <m>.
func (*ListMap) Pop ¶ added in v0.0.9
func (m *ListMap) Pop() (key, value interface{})
Pop retrieves and deletes an item from the map.
func (*ListMap) Pops ¶ added in v0.0.9
Pops retrieves and deletes <size> items from the map. It returns all items if size == -1.
func (*ListMap) Remove ¶ added in v0.0.9
func (m *ListMap) Remove(key interface{}) (value interface{})
Remove deletes value from map by given <key>, and return this deleted value.
func (*ListMap) Removes ¶ added in v0.0.9
func (m *ListMap) Removes(keys []interface{})
Removes batch deletes values of the map by keys.
func (*ListMap) Replace ¶ added in v0.0.9
func (m *ListMap) Replace(data map[interface{}]interface{})
Replace the data of the map with given <data>.
func (*ListMap) Search ¶ added in v0.0.9
Search searches the map with given <key>. Second return parameter <found> is true if key was found, otherwise false.
func (*ListMap) Set ¶ added in v0.0.9
func (m *ListMap) Set(key interface{}, value interface{})
Set sets key-value to the map.
func (*ListMap) SetIfNotExist ¶ added in v0.0.9
SetIfNotExist sets <value> to the map if the <key> does not exist, and then returns true. It returns false if <key> exists, and <value> would be ignored.
func (*ListMap) SetIfNotExistFunc ¶ added in v0.0.9
SetIfNotExistFunc sets value with return value of callback function <f>, and then returns true. It returns false if <key> exists, and <value> would be ignored.
func (*ListMap) SetIfNotExistFuncLock ¶ added in v0.0.9
SetIfNotExistFuncLock sets value with return value of callback function <f>, and then returns true. It returns false if <key> exists, and <value> would be ignored.
SetIfNotExistFuncLock differs with SetIfNotExistFunc function is that it executes function <f> with mutex.Lock of the map.
func (*ListMap) Sets ¶ added in v0.0.9
func (m *ListMap) Sets(data map[interface{}]interface{})
Sets batch sets key-values to the map.
func (*ListMap) UnmarshalJSON ¶ added in v0.0.9
UnmarshalJSON implements the interface UnmarshalJSON for json.Unmarshal.
func (*ListMap) UnmarshalValue ¶ added in v0.0.9
UnmarshalValue is an interface implement which sets any type of value for map.
type Map ¶
type Map = AnyAnyMap // Map is alias of AnyAnyMap.
func New ¶
New 创建一个map对象
Example ¶
package main import ( "fmt" "github.com/osgochina/donkeygo/container/dmap" ) func main() { m := dmap.New() // Add data. m.Set("key1", "val1") // Print size. fmt.Println(m.Size()) addMap := make(map[interface{}]interface{}) addMap["key2"] = "val2" addMap["key3"] = "val3" addMap[1] = 1 fmt.Println(m.Values()) // Batch add data. m.Sets(addMap) // Gets the value of the corresponding key. fmt.Println(m.Get("key3")) // Get the value by key, or set it with given key-value if not exist. fmt.Println(m.GetOrSet("key4", "val4")) // Set key-value if the key does not exist, then return true; or else return false. fmt.Println(m.SetIfNotExist("key3", "val3")) // Remove key m.Remove("key2") fmt.Println(m.Keys()) // Batch remove keys. m.Removes([]interface{}{"key1", 1}) fmt.Println(m.Keys()) // Contains checks whether a key exists. fmt.Println(m.Contains("key3")) // Flip exchanges key-value of the map, it will change key-value to value-key. m.Flip() fmt.Println(m.Map()) // Clear deletes all data of the map. m.Clear() fmt.Println(m.Size()) // May Output: // 1 // [val1] // val3 // val4 // false // [key4 key1 key3 1] // [key4 key3] // true // map[val3:key3 val4:key4] // 0 }
Output:
func NewHashMapFrom ¶
NewHashMapFrom 创建一个map对象,并把参数data作为值
type StrAnyMap ¶ added in v0.0.3
type StrAnyMap struct {
// contains filtered or unexported fields
}
func NewStrAnyMap ¶ added in v0.0.3
NewStrAnyMap 返回一个空的StrAnyMap对象
func NewStrAnyMapFrom ¶ added in v0.0.3
NewStrAnyMapFrom 从给定的map 创建并返回一个哈希映射。 注意,param map将被设置为底层数据map(没有深层复制), 当改变外部映射时,可能会有一些并发安全问题。
func (*StrAnyMap) Clear ¶ added in v0.0.3
func (that *StrAnyMap) Clear()
Clear deletes all data of the map, it will remake a new underlying data map.
func (*StrAnyMap) Contains ¶ added in v0.0.3
Contains checks whether a key exists. It returns true if the <key> exists, or else false.
func (*StrAnyMap) FilterEmpty ¶ added in v0.0.3
func (that *StrAnyMap) FilterEmpty()
FilterEmpty 删除map对象中的空值 空值的定义: 0, nil, false, "", len(slice/map/chan) == 0
func (*StrAnyMap) FilterNil ¶ added in v0.0.3
func (that *StrAnyMap) FilterNil()
FilterNil 删除map中值为 nil的对象
func (*StrAnyMap) Flip ¶ added in v0.0.3
func (that *StrAnyMap) Flip()
Flip exchanges key-value of the map to value-key.
func (*StrAnyMap) GetOrSetFunc ¶ added in v0.0.3
GetOrSetFunc 如果存在,则返回,不存在则设置并返回
func (*StrAnyMap) GetOrSetFuncLock ¶ added in v0.0.3
GetOrSetFuncLock 如果存在,则返回,不存在则设置并返回
func (*StrAnyMap) GetVarOrSet ¶ added in v0.0.3
GetVarOrSet returns a Var with result from GetVarOrSet. The returned Var is un-concurrent safe.
func (*StrAnyMap) GetVarOrSetFunc ¶ added in v0.0.3
GetVarOrSetFunc returns a Var with result from GetOrSetFunc. The returned Var is un-concurrent safe.
func (*StrAnyMap) GetVarOrSetFuncLock ¶ added in v0.0.3
GetVarOrSetFuncLock returns a Var with result from GetOrSetFuncLock. The returned Var is un-concurrent safe.
func (*StrAnyMap) IsEmpty ¶ added in v0.0.3
IsEmpty checks whether the map is empty. It returns true if map is empty, or else false.
func (*StrAnyMap) LockFunc ¶ added in v0.0.3
LockFunc locks writing with given callback function <f> within RWMutex.Lock.
func (*StrAnyMap) MarshalJSON ¶ added in v0.0.3
MarshalJSON implements the interface MarshalJSON for json.Marshal.
func (*StrAnyMap) Merge ¶ added in v0.0.3
Merge merges two hash maps. The <other> map will be merged into the map <m>.
func (*StrAnyMap) RLockFunc ¶ added in v0.0.3
RLockFunc locks reading with given callback function <f> within RWMutex.RLock.
func (*StrAnyMap) Remove ¶ added in v0.0.3
Remove deletes value from map by given <key>, and return this deleted value.
func (*StrAnyMap) Search ¶ added in v0.0.3
Search 查找key是否存在map中,知道则返回该值,found为true,没有找到value=nil,found=false
func (*StrAnyMap) SetIfNotExist ¶ added in v0.0.3
SetIfNotExist sets <value> to the map if the <key> does not exist, and then returns true. It returns false if <key> exists, and <value> would be ignored.
func (*StrAnyMap) SetIfNotExistFunc ¶ added in v0.0.3
SetIfNotExistFunc sets value with return value of callback function <f>, and then returns true. It returns false if <key> exists, and <value> would be ignored.
func (*StrAnyMap) SetIfNotExistFuncLock ¶ added in v0.0.3
SetIfNotExistFuncLock sets value with return value of callback function <f>, and then returns true. It returns false if <key> exists, and <value> would be ignored.
SetIfNotExistFuncLock differs with SetIfNotExistFunc function is that it executes function <f> with mutex.Lock of the hash map.
func (*StrAnyMap) UnmarshalJSON ¶ added in v0.0.3
UnmarshalJSON implements the interface UnmarshalJSON for json.Unmarshal.
func (*StrAnyMap) UnmarshalValue ¶ added in v0.0.3
UnmarshalValue is an interface implement which sets any type of value for map.
type StrIntMap ¶ added in v0.0.9
type StrIntMap struct {
// contains filtered or unexported fields
}
func NewStrIntMap ¶ added in v0.0.9
NewStrIntMap returns an empty StrIntMap object. The parameter <safe> is used to specify whether using map in concurrent-safety, which is false in default.
func NewStrIntMapFrom ¶ added in v0.0.9
NewStrIntMapFrom creates and returns a hash map from given map <data>. Note that, the param <data> map will be set as the underlying data map(no deep copy), there might be some concurrent-safe issues when changing the map outside.
func (*StrIntMap) Clear ¶ added in v0.0.9
func (that *StrIntMap) Clear()
Clear deletes all data of the map, it will remake a new underlying data map.
func (*StrIntMap) Clone ¶ added in v0.0.9
Clone returns a new hash map with copy of current map data.
func (*StrIntMap) Contains ¶ added in v0.0.9
Contains checks whether a key exists. It returns true if the <key> exists, or else false.
func (*StrIntMap) FilterEmpty ¶ added in v0.0.9
func (that *StrIntMap) FilterEmpty()
FilterEmpty deletes all key-value pair of which the value is empty. Values like: 0, nil, false, "", len(slice/map/chan) == 0 are considered empty.
func (*StrIntMap) Flip ¶ added in v0.0.9
func (that *StrIntMap) Flip()
Flip exchanges key-value of the map to value-key.
func (*StrIntMap) GetOrSet ¶ added in v0.0.9
GetOrSet returns the value by key, or sets value with given <value> if it does not exist and then returns this value.
func (*StrIntMap) GetOrSetFunc ¶ added in v0.0.9
GetOrSetFunc returns the value by key, or sets value with returned value of callback function <f> if it does not exist and then returns this value.
func (*StrIntMap) GetOrSetFuncLock ¶ added in v0.0.9
GetOrSetFuncLock returns the value by key, or sets value with returned value of callback function <f> if it does not exist and then returns this value.
GetOrSetFuncLock differs with GetOrSetFunc function is that it executes function <f> with mutex.Lock of the hash map.
func (*StrIntMap) IsEmpty ¶ added in v0.0.9
IsEmpty checks whether the map is empty. It returns true if map is empty, or else false.
func (*StrIntMap) Iterator ¶ added in v0.0.9
Iterator iterates the hash map readonly with custom callback function <f>. If <f> returns true, then it continues iterating; or false to stop.
func (*StrIntMap) LockFunc ¶ added in v0.0.9
LockFunc locks writing with given callback function <f> within RWMutex.Lock.
func (*StrIntMap) Map ¶ added in v0.0.9
Map returns the underlying data map. Note that, if it's in concurrent-safe usage, it returns a copy of underlying data, or else a pointer to the underlying data.
func (*StrIntMap) MapCopy ¶ added in v0.0.9
MapCopy returns a copy of the underlying data of the hash map.
func (*StrIntMap) MapStrAny ¶ added in v0.0.9
MapStrAny returns a copy of the underlying data of the map as map[string]interface{}.
func (*StrIntMap) MarshalJSON ¶ added in v0.0.9
MarshalJSON implements the interface MarshalJSON for json.Marshal.
func (*StrIntMap) Merge ¶ added in v0.0.9
Merge merges two hash maps. The <other> map will be merged into the map <m>.
func (*StrIntMap) Pops ¶ added in v0.0.9
Pops retrieves and deletes <size> items from the map. It returns all items if size == -1.
func (*StrIntMap) RLockFunc ¶ added in v0.0.9
RLockFunc locks reading with given callback function <f> within RWMutex.RLock.
func (*StrIntMap) Remove ¶ added in v0.0.9
Remove deletes value from map by given <key>, and return this deleted value.
func (*StrIntMap) Search ¶ added in v0.0.9
Search searches the map with given <key>. Second return parameter <found> is true if key was found, otherwise false.
func (*StrIntMap) SetIfNotExist ¶ added in v0.0.9
SetIfNotExist sets <value> to the map if the <key> does not exist, and then returns true. It returns false if <key> exists, and <value> would be ignored.
func (*StrIntMap) SetIfNotExistFunc ¶ added in v0.0.9
SetIfNotExistFunc sets value with return value of callback function <f>, and then returns true. It returns false if <key> exists, and <value> would be ignored.
func (*StrIntMap) SetIfNotExistFuncLock ¶ added in v0.0.9
SetIfNotExistFuncLock sets value with return value of callback function <f>, and then returns true. It returns false if <key> exists, and <value> would be ignored.
SetIfNotExistFuncLock differs with SetIfNotExistFunc function is that it executes function <f> with mutex.Lock of the hash map.
func (*StrIntMap) UnmarshalJSON ¶ added in v0.0.9
UnmarshalJSON implements the interface UnmarshalJSON for json.Unmarshal.
func (*StrIntMap) UnmarshalValue ¶ added in v0.0.9
UnmarshalValue is an interface implement which sets any type of value for map.
type StrStrMap ¶ added in v0.0.9
type StrStrMap struct {
// contains filtered or unexported fields
}
func NewStrStrMap ¶ added in v0.0.9
NewStrStrMap returns an empty StrStrMap object. The parameter <safe> is used to specify whether using map in concurrent-safety, which is false in default.
func NewStrStrMapFrom ¶ added in v0.0.9
NewStrStrMapFrom creates and returns a hash map from given map <data>. Note that, the param <data> map will be set as the underlying data map(no deep copy), there might be some concurrent-safe issues when changing the map outside.
func (*StrStrMap) Clear ¶ added in v0.0.9
func (that *StrStrMap) Clear()
Clear deletes all data of the map, it will remake a new underlying data map.
func (*StrStrMap) Clone ¶ added in v0.0.9
Clone returns a new hash map with copy of current map data.
func (*StrStrMap) Contains ¶ added in v0.0.9
Contains checks whether a key exists. It returns true if the <key> exists, or else false.
func (*StrStrMap) FilterEmpty ¶ added in v0.0.9
func (that *StrStrMap) FilterEmpty()
FilterEmpty deletes all key-value pair of which the value is empty. Values like: 0, nil, false, "", len(slice/map/chan) == 0 are considered empty.
func (*StrStrMap) Flip ¶ added in v0.0.9
func (that *StrStrMap) Flip()
Flip exchanges key-value of the map to value-key.
func (*StrStrMap) GetOrSet ¶ added in v0.0.9
GetOrSet returns the value by key, or sets value with given <value> if it does not exist and then returns this value.
func (*StrStrMap) GetOrSetFunc ¶ added in v0.0.9
GetOrSetFunc returns the value by key, or sets value with returned value of callback function <f> if it does not exist and then returns this value.
func (*StrStrMap) GetOrSetFuncLock ¶ added in v0.0.9
GetOrSetFuncLock returns the value by key, or sets value with returned value of callback function <f> if it does not exist and then returns this value.
GetOrSetFuncLock differs with GetOrSetFunc function is that it executes function <f> with mutex.Lock of the hash map.
func (*StrStrMap) IsEmpty ¶ added in v0.0.9
IsEmpty checks whether the map is empty. It returns true if map is empty, or else false.
func (*StrStrMap) Iterator ¶ added in v0.0.9
Iterator iterates the hash map readonly with custom callback function <f>. If <f> returns true, then it continues iterating; or false to stop.
func (*StrStrMap) LockFunc ¶ added in v0.0.9
LockFunc locks writing with given callback function <f> within RWMutex.Lock.
func (*StrStrMap) Map ¶ added in v0.0.9
Map returns the underlying data map. Note that, if it's in concurrent-safe usage, it returns a copy of underlying data, or else a pointer to the underlying data.
func (*StrStrMap) MapCopy ¶ added in v0.0.9
MapCopy returns a copy of the underlying data of the hash map.
func (*StrStrMap) MapStrAny ¶ added in v0.0.9
MapStrAny returns a copy of the underlying data of the map as map[string]interface{}.
func (*StrStrMap) MarshalJSON ¶ added in v0.0.9
MarshalJSON implements the interface MarshalJSON for json.Marshal.
func (*StrStrMap) Merge ¶ added in v0.0.9
Merge merges two hash maps. The <other> map will be merged into the map <m>.
func (*StrStrMap) Pops ¶ added in v0.0.9
Pops retrieves and deletes <size> items from the map. It returns all items if size == -1.
func (*StrStrMap) RLockFunc ¶ added in v0.0.9
RLockFunc locks reading with given callback function <f> within RWMutex.RLock.
func (*StrStrMap) Remove ¶ added in v0.0.9
Remove deletes value from map by given <key>, and return this deleted value.
func (*StrStrMap) Search ¶ added in v0.0.9
Search searches the map with given <key>. Second return parameter <found> is true if key was found, otherwise false.
func (*StrStrMap) SetIfNotExist ¶ added in v0.0.9
SetIfNotExist sets <value> to the map if the <key> does not exist, and then returns true. It returns false if <key> exists, and <value> would be ignored.
func (*StrStrMap) SetIfNotExistFunc ¶ added in v0.0.9
SetIfNotExistFunc sets value with return value of callback function <f>, and then returns true. It returns false if <key> exists, and <value> would be ignored.
func (*StrStrMap) SetIfNotExistFuncLock ¶ added in v0.0.9
SetIfNotExistFuncLock sets value with return value of callback function <f>, and then returns true. It returns false if <key> exists, and <value> would be ignored.
SetIfNotExistFuncLock differs with SetIfNotExistFunc function is that it executes function <f> with mutex.Lock of the hash map.
func (*StrStrMap) UnmarshalJSON ¶ added in v0.0.9
UnmarshalJSON implements the interface UnmarshalJSON for json.Unmarshal.
func (*StrStrMap) UnmarshalValue ¶ added in v0.0.9
UnmarshalValue is an interface implement which sets any type of value for map.
type TreeMap ¶ added in v0.1.9
type TreeMap = gtree.RedBlackTree
Map based on red-black tree, alias of RedBlackTree.
func NewTreeMap ¶ added in v0.1.9
NewTreeMap instantiates a tree map with the custom comparator. The parameter <safe> is used to specify whether using tree in concurrent-safety, which is false in default.
func NewTreeMapFrom ¶ added in v0.1.9
func NewTreeMapFrom(comparator func(v1, v2 interface{}) int, data map[interface{}]interface{}, safe ...bool) *TreeMap
NewTreeMapFrom instantiates a tree map with the custom comparator and <data> map. Note that, the param <data> map will be set as the underlying data map(no deep copy), there might be some concurrent-safe issues when changing the map outside. The parameter <safe> is used to specify whether using tree in concurrent-safety, which is false in default.