ecodeclub / ekit

支持泛型的工具库

Home Page:https://doc.meoying.com/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

mapx: 支持 Len 方法

flycash opened this issue · comments

仅限中文

使用场景

在一些时候,我们需要判定整个 Map 里面究竟放了多少个元素,那么就希望可以暴露一个 Len 的方法。

这个 Len 返回的是键值对的数量。也就是说,如果一个 key 对应了多个元素,类似于 MultipleMap,那么还是认为这些元素和key 只是一个键值对而已。

行业分析

如果你知道有框架提供了类似功能,可以在这里描述,并且给出文档或者例子

可行方案

如果你有设计思路或者解决方案,请在这里提供。你可以提供多个方案,并且给出自己的选择

type mapi[K any, V any] interface {
	Put(key K, val V) error
	Get(key K) (V, bool)
	// Delete 删除
	// 第一个返回值是被删除的 key 对应的值
	// 第二个返回值是代表是否真的删除了
	Delete(k K) (V, bool)
	// Keys 返回所有的键
	// 注意,当你调用多次拿到的结果不一定相等
	// 取决于具体实现
	Keys() []K
	// Values 返回所有的值
	// 注意,当你调用多次拿到的结果不一定相等
	// 取决于具体实现
	Values() []V
       // 返回键值对数量
        Len() int64
}

这里我认为返回 int64 是万无一失的。当然,即便直接返回 int 大多数时候也没问题。

其它

任何你觉得有利于解决问题的补充说明

你使用的是 ekit 哪个版本?

你设置的的 Go 环境?

上传 go env 的结果