1 Star 1 Fork 0

Breeze/bzv2

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
get.go 1.04 KB
一键复制 编辑 原始数据 按行查看 历史
Breeze 提交于 2023-08-13 23:16 +08:00 . first commit
package bzgncmap
// Get 获取
// @param key K 键
// @return val V 值
// @return exist bool 是否存在
func (m *Map[K, V]) Get(key K) (V, bool) {
var v V
var ok bool
m.getFunc(func(ms map[K]V) {
v, ok = m.m[key]
})
return v, ok
}
// GetOrDefault 获取或得到默认值
// @param key K 键
// @return val V 值
// @return exist bool 是否存在
func (m *Map[K, V]) GetOrDefault(key K, def V) (V, bool) {
v, ok := m.Get(key)
if !ok {
return def, ok
}
return v, ok
}
// GetOrPut 获取或新增
// @param key K 键
// @return val V 值
// @return exist bool 是否存在
func (m *Map[K, V]) GetOrPut(key K, val V) (V, bool) {
v, ok := m.Get(key)
if !ok {
m.Put(key, val)
return val, ok
}
return v, ok
}
func (m *Map[K, V]) ExistPut(key K, f func(val *V)) bool {
if v, ok := m.Get(key); ok {
m.putFunc(func(ms map[K]V) {
f(&v)
ms[key] = v
})
return true
}
return false
}
// Exist 是否存在
// @param key K 键
// @return exist bool 是否存在
func (m *Map[K, V]) Exist(key K) bool {
_, ok := m.Get(key)
return ok
}
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
Go
1
https://gitee.com/breezeHub/bzv2.git
git@gitee.com:breezeHub/bzv2.git
breezeHub
bzv2
bzv2
v0.0.5

搜索帮助