github.com/songzhibin97/go-baseutils@v0.0.2-0.20240302024150-487d8ce9c082/base/bmap/README.md (about)

     1  # bmap
     2  
     3  针对map的方法封装
     4  
     5  ## API
     6  
     7  ### AnyMap
     8  - ToMetaMap 获取底层最原始map 无论是否是衍生的safe map都不是并发安全的
     9  - Keys 返回map中所有的key
    10  - Values 返回map中所有的value
    11  - EqualFuncByMap 传入一个原始map以及一个比较函数判断anymap与原始map是否相同
    12  - EqualFuncByBMap 传入一个anymap以及一个比较函数判断anymap与传入的anymap是否相同
    13  - Clear 清除map的kv
    14  - CloneToMap 克隆一个完全相同的原始map
    15  - CloneToBMap 克隆一个完全相同的anymap
    16  - CopyByMap 传入一个原始map将原始map的kv复制到anymap中
    17  - CopyByBMap 传入一个anymap将anymap的kv复制到anymap中
    18  - DeleteFunc 传入一个删除函数删除map中符合条件的kv
    19  - Marshal 
    20  - Unmarshal
    21  - Size 返回键值对数量
    22  - IsEmpty 判断是否为空
    23  - IsExist 传入k判断是否存在
    24  - ContainsKey 传入k判断是否存在
    25  - ContainsValue 传入v判断是否存在
    26  - ForEach 传入一个函数遍历map,最好不要在遍历过程中操作map
    27  - Get 获取 k对应的value, 如果不存在返回false
    28  - GetOrDefault  获取 k对应的value, 如果不存在返回defaultValue
    29  - Put 设置 k对应的value,如果有会覆盖
    30  - PuTIfAbsent 设置如果k对应value不存在的情况下设置成功
    31  - Delete 删除k对应的value
    32  - DeleteIfPresent 删除 k对应的value, 如果存在返回true
    33  - MergeByMap 传入普通map根据返回进行合并 func(k, ov) 传入key和当前nmap的对应key的value值进行冲突处理 return true 进行替换 false则跳过
    34  - MergeByBMap 传入anymap根据返回进行合并 func(k, ov) 传入key和当前nmap的对应key的value值进行冲突处理 return true 进行替换 false则跳过
    35  - Replace 替换 k对应的value等于ov则设置为nv
    36  
    37  ### ComparableBMap
    38  - AnyBMap[K, V] 继承anymap所有api
    39  - EqualByMap 传入一个原始map以及一个比较函数判断anymap与原始map是否相同
    40  - EqualByBMap 传入一个anymap以及一个比较函数判断anymap与传入的anymap是否相同
    41  
    42  ## EXAMPLE  
    43  ```go
    44  package main
    45  
    46  import (
    47  	"fmt"
    48  	"github.com/songzhibin97/go-baseutils/base/bmap"
    49  )
    50  
    51  func main() {
    52  	amap := bmap.NewUnsafeAnyBMap[int, int]()
    53  	amap.Put(1, 1)
    54  	fmt.Println(amap.Get(1))             // 1, true
    55  	fmt.Println(amap.Get(2))             // 0, false
    56  	fmt.Println(amap.GetOrDefault(2, 2)) // 2
    57  }
    58  ```