feat(utils): 添加切片元素计数功能 新增CountSliceElements函数用于统计切片中各元素的出现次数, 返回map[元素]出现次数的映射关系,支持任意可比较类型的切片元素。 fix(config): 调整地图配置模型默认值设置 修改MapPit结构体中的MinLevel和MaxLevel字段设置, 将数据库约束改为非空并设置默认值为1,确保等级范围配置的有效性。 ref
This commit is contained in:
@@ -84,3 +84,18 @@ func RandomSlice[T any](slice []T, n int) []T {
|
||||
|
||||
return result
|
||||
}
|
||||
|
||||
// T: 切片元素类型(必须是可比较类型,满足map键的要求)
|
||||
// 返回值:map[T]int - 键为切片元素,值为对应出现次数
|
||||
func CountSliceElements[T comparable](slice []T) map[T]int {
|
||||
// 初始化map,预设容量为切片长度(优化性能)
|
||||
countMap := make(map[T]int, len(slice))
|
||||
|
||||
// 遍历切片,统计每个元素的出现次数
|
||||
for _, v := range slice {
|
||||
// 若元素已存在,值+1;不存在则自动初始化为0后+1
|
||||
countMap[v]++
|
||||
}
|
||||
|
||||
return countMap
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user