Skip to content
This repository was archived by the owner on May 31, 2025. It is now read-only.

Commit f307585

Browse files
committed
feat(slicex): add ToMap
1 parent 9b5ab60 commit f307585

File tree

1 file changed

+14
-0
lines changed

1 file changed

+14
-0
lines changed

slicex/slicex.go

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,3 +13,17 @@ func Paginate[T any](slice []T, page, size int) []T {
1313

1414
return slice[start:end]
1515
}
16+
17+
// ToMap 是一个泛型函数,用于将切片转换为映射
18+
func ToMap[K comparable, T any](rows []T, keyFunc func(row T) K) map[K]T {
19+
// 初始化一个空的映射,键的类型为 K,值的类型为 T
20+
res := make(map[K]T)
21+
// 遍历切片中的每个元素
22+
for _, row := range rows {
23+
// 调用 keyFunc 函数获取当前元素对应的键
24+
key := keyFunc(row)
25+
// 将键和对应的元素存入映射中
26+
res[key] = row
27+
}
28+
return res
29+
}

0 commit comments

Comments
 (0)