Documentation ¶
Index ¶
- func AllExist[K comparable, V any](m map[K]V, keys ...K) bool
- func Chunk[K comparable, V any](m map[K]V, size int) []map[K]V
- func Clear[K comparable, V any](m map[K]V)
- func Copy[K comparable, V any](m map[K]V) map[K]V
- func DropBy[K comparable, V any](m map[K]V, fn func(key K, value V) bool) map[K]V
- func DropByCopy[K comparable, V any](m map[K]V, fn func(key K, value V) bool) map[K]V
- func Each[K comparable, V any](abort bool, m map[K]V, iterator func(i int, key K, item V) bool)
- func EachF[K comparable, V any](m map[K]V, iterator func(i int, key K, item V) bool)
- func EachResult[K comparable, V any, R any](abort bool, m map[K]V, iterator func(i int, key K, item V) (R, bool)) []R
- func EachResultF[K comparable, V any, R any](m map[K]V, iterator func(i int, key K, item V) (R, bool)) []R
- func EachResultT[K comparable, V any, R any](m map[K]V, iterator func(i int, key K, item V) (R, bool)) []R
- func EachT[K comparable, V any](m map[K]V, iterator func(i int, key K, item V) bool)
- func Exist[K comparable, V any](m map[K]V, key K) bool
- func Filter[K comparable, V any](reserve bool, m map[K]V, expression func(key K, value V) bool) map[K]V
- func FilterCopy[K comparable, V any](reserve bool, m map[K]V, expression func(key K, value V) bool) map[K]V
- func FilterF[K comparable, V any](m map[K]V, expression func(key K, value V) bool) map[K]V
- func FilterFCopy[K comparable, V any](m map[K]V, expression func(key K, value V) bool) map[K]V
- func FilterT[K comparable, V any](m map[K]V, expression func(key K, value V) bool) map[K]V
- func FilterTCopy[K comparable, V any](m map[K]V, expression func(key K, value V) bool) map[K]V
- func KeyToSlice[K comparable, V any](m map[K]V) []K
- func RandomDrop[K comparable, V any](n int, hash map[K]V) map[K]V
- func RandomDropCopy[K comparable, V any](n int, m map[K]V) map[K]V
- func RandomGet[K comparable, V any](m map[K]V) (v V)
- func RandomGetKey[K comparable, V any](m map[K]V) (k K)
- func RandomGetKeyN[K comparable, V any](m map[K]V, n int) (ks []K)
- func RandomGetN[K comparable, V any](m map[K]V, n int) (vs []V)
- func Reversal[K comparable, V comparable](m map[K]V) map[V]K
- func Sum[K comparable, V generic.Number](m map[K]V) V
- func ToIterator[V comparable](slice []V) map[V]struct{}
- func ToJson[K comparable, V any](m map[K]V) string
- func ToMap[V any](slice []V) map[int]V
- func ToMapBool[V comparable](slice []V) map[V]bool
- func ToSlice[K comparable, V any](m map[K]V) []V
- type Consistency
- type Set
- func (s Set[K]) Add(key K)
- func (s Set[K]) AddAll(keys ...K)
- func (s Set[K]) AllExist(keys ...K) bool
- func (s Set[K]) Clear()
- func (s Set[K]) Exist(key K) bool
- func (s Set[K]) RandomGet() (k K)
- func (s Set[K]) Remove(key K)
- func (s Set[K]) RemoveAll(keys ...K)
- func (s Set[K]) Size() int
- func (s Set[K]) ToJson() string
- func (s Set[K]) ToMap() map[K]struct{}
- func (s Set[K]) ToSlice() []K
- type SortMap
- func (slf *SortMap[K, V]) Del(key K)
- func (slf *SortMap[K, V]) For(handle func(key K, value V) bool)
- func (slf *SortMap[K, V]) ForSort(handle func(key K, value V) bool)
- func (slf *SortMap[K, V]) Get(key K) V
- func (slf *SortMap[K, V]) KeyToSlice() []K
- func (slf *SortMap[K, V]) Set(key K, value V)
- func (slf *SortMap[K, V]) ToMap() map[K]V
- func (slf *SortMap[K, V]) ToSlice() []V
- func (slf *SortMap[K, V]) ToSliceSort() []V
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func AllExist ¶
func AllExist[K comparable, V any](m map[K]V, keys ...K) bool
AllExist 检查多个 key 是否存在
func Chunk ¶ added in v0.1.5
func Chunk[K comparable, V any](m map[K]V, size int) []map[K]V
Chunk 将哈希表按照指定大小分块
- m: 待分块的哈希表
- size: 每块的大小
func DropBy ¶ added in v0.1.5
func DropBy[K comparable, V any](m map[K]V, fn func(key K, value V) bool) map[K]V
DropBy 从哈希表中删除指定的元素
func DropByCopy ¶ added in v0.1.5
func DropByCopy[K comparable, V any](m map[K]V, fn func(key K, value V) bool) map[K]V
DropByCopy 与 DropBy 功能相同,但是该函数不会修改原哈希表
func Each ¶ added in v0.1.5
func Each[K comparable, V any](abort bool, m map[K]V, iterator func(i int, key K, item V) bool)
Each 根据传入的 abort 遍历 m,如果 iterator 返回值与 abort 相同,则停止遍历
func EachF ¶ added in v0.1.5
func EachF[K comparable, V any](m map[K]V, iterator func(i int, key K, item V) bool)
EachF 与 Each 的功能相同,但是 abort 被默认为 false
func EachResult ¶ added in v0.1.5
func EachResult[K comparable, V any, R any](abort bool, m map[K]V, iterator func(i int, key K, item V) (R, bool)) []R
EachResult 根据传入的 abort 遍历 m,得到遍历的结果,如果 iterator 返回值中的 bool 值与 abort 相同,则停止遍历,并返回当前已积累的结果
func EachResultF ¶ added in v0.1.5
func EachResultF[K comparable, V any, R any](m map[K]V, iterator func(i int, key K, item V) (R, bool)) []R
EachResultF 与 EachResult 的功能相同,但是 abort 被默认为 false
func EachResultT ¶ added in v0.1.5
func EachResultT[K comparable, V any, R any](m map[K]V, iterator func(i int, key K, item V) (R, bool)) []R
EachResultT 与 EachResult 的功能相同,但是 abort 被默认为 true
func EachT ¶ added in v0.1.5
func EachT[K comparable, V any](m map[K]V, iterator func(i int, key K, item V) bool)
EachT 与 Each 的功能相同,但是 abort 被默认为 true
func Filter ¶ added in v0.1.5
func Filter[K comparable, V any](reserve bool, m map[K]V, expression func(key K, value V) bool) map[K]V
Filter 根据特定的表达式过滤哈希表成员
- reserve: 是否保留符合条件的成员
- m: 待过滤的哈希表
- expression: 过滤表达式
这个函数的作用是遍历输入哈希表 m,然后根据 expression 函数的返回值来决定是否保留每个元素。具体来说
- 如果 expression 返回 true 并且 reserve 也是 true,那么元素会被保留
- 如果 expression 返回 false 并且 reserve 是 false,那么元素也会被保留
该没有创建新的内存空间或进行元素复制,所以整个操作相当高效。同时,由于 m 和 map 实际上共享底层的数组,因此这个函数会改变传入的 map。如果不希望改变原哈希表,需要在函数调用之前手动复制一份或者使用 FilterCopy 函数。
func FilterCopy ¶ added in v0.1.5
func FilterCopy[K comparable, V any](reserve bool, m map[K]V, expression func(key K, value V) bool) map[K]V
FilterCopy 与 Filter 的功能相同,但是不会改变原哈希表,而是返回一个新的哈希表
func FilterF ¶ added in v0.1.5
func FilterF[K comparable, V any](m map[K]V, expression func(key K, value V) bool) map[K]V
FilterF 与 Filter 的功能相同,但是 reserve 被默认为 false
func FilterFCopy ¶ added in v0.1.5
func FilterFCopy[K comparable, V any](m map[K]V, expression func(key K, value V) bool) map[K]V
FilterFCopy 与 FilterCopy 的功能相同,但是 reserve 被默认为 false
func FilterT ¶ added in v0.1.5
func FilterT[K comparable, V any](m map[K]V, expression func(key K, value V) bool) map[K]V
FilterT 与 Filter 的功能相同,但是 reserve 被默认为 true
func FilterTCopy ¶ added in v0.1.5
func FilterTCopy[K comparable, V any](m map[K]V, expression func(key K, value V) bool) map[K]V
FilterTCopy 与 FilterCopy 的功能相同,但是 reserve 被默认为 true
func RandomDrop ¶ added in v0.1.5
func RandomDrop[K comparable, V any](n int, hash map[K]V) map[K]V
RandomDrop 随机删除哈希表中的指定数量的元素
- 该函数会修改原哈希表,如果不想修改原哈希表,请使用 RandomDropCopy
func RandomDropCopy ¶ added in v0.1.5
func RandomDropCopy[K comparable, V any](n int, m map[K]V) map[K]V
RandomDropCopy 随机删除哈希表中的指定数量的元素
- 该函数不会修改原哈希表,如果想修改原哈希表,请使用 RandomDrop
func RandomGet ¶ added in v0.0.9
func RandomGet[K comparable, V any](m map[K]V) (v V)
RandomGet 随机获取一个元素
func RandomGetKey ¶ added in v0.0.9
func RandomGetKey[K comparable, V any](m map[K]V) (k K)
RandomGetKey 随机获取一个 key
func RandomGetKeyN ¶ added in v0.0.9
func RandomGetKeyN[K comparable, V any](m map[K]V, n int) (ks []K)
RandomGetKeyN 随机获取 n 个 key
- 获取到的元素不会是重复的,当 map 的长度不足 n 时,返回的元素等同于 hash.KeyToSlice
func RandomGetN ¶ added in v0.0.9
func RandomGetN[K comparable, V any](m map[K]V, n int) (vs []V)
RandomGetN 随机获取 n 个元素
- 获取到的元素不会是重复的,当 map 的长度不足 n 时,返回的元素等同于 hash.ToSlice
func Reversal ¶
func Reversal[K comparable, V comparable](m map[K]V) map[V]K
Reversal 将 map 的 key 和 value 互换
func ToIterator ¶ added in v0.0.13
func ToIterator[V comparable](slice []V) map[V]struct{}
ToIterator 将切片转换为 Iterator
func ToJson ¶ added in v0.0.4
func ToJson[K comparable, V any](m map[K]V) string
ToJson 将 map 转换为 json 字符串
Types ¶
type Consistency ¶
type Consistency struct {
// contains filtered or unexported fields
}
Consistency 一致性哈希生成
https://blog.csdn.net/zhpCSDN921011/article/details/126845397
func NewConsistency ¶
func NewConsistency(replicas int) *Consistency
func (*Consistency) PickNode ¶
func (slf *Consistency) PickNode(key any) int
PickNode 获取与 key 最接近的节点
type Set ¶ added in v0.0.21
type Set[K comparable] map[K]struct{}
Set 集合
type SortMap ¶
type SortMap[K comparable, V any] struct { // contains filtered or unexported fields }
SortMap 有序的 map 实现
func NewSortMap ¶
func NewSortMap[K comparable, V any]() *SortMap[K, V]
func (*SortMap[K, V]) KeyToSlice ¶
func (slf *SortMap[K, V]) KeyToSlice() []K
func (*SortMap[K, V]) ToSliceSort ¶
func (slf *SortMap[K, V]) ToSliceSort() []V