Documentation
¶
Overview ¶
Package slicex 提供泛型 Slice 工具函数。
Index ¶
- func Chunk[T any](slice []T, size int) [][]T
- func Contains[T comparable](slice []T, target T) bool
- func Filter[T any](slice []T, fn func(T) bool) []T
- func First[T any](fn func(T) bool, slice ...T) T
- func Flatten[T any](slices [][]T) []T
- func GroupBy[T any, K comparable](slice []T, fn func(T) K) map[K][]T
- func Index[T comparable](slice []T, target T) int
- func Join[T any](slice []T, sep string) string
- func Map[T, R any](slice []T, fn func(T) R) []R
- func Partition[T any](slice []T, fn func(T) bool) (matching, rest []T)
- func Reduce[T, R any](slice []T, init R, fn func(R, T) R) R
- func Reverse[T any](slice []T) []T
- func ToMap[T any, K comparable](slice []T, keyFn func(T) K) map[K]T
- func Unique[T comparable](slice []T) []T
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func GroupBy ¶
func GroupBy[T any, K comparable](slice []T, fn func(T) K) map[K][]T
GroupBy 按 key 函数分组。
func Partition ¶
Partition 按 fn 返回 true/false 把 slice 分成两组(matching, rest), 保留原顺序。
业务场景: 批量操作时把"成功/失败"分开;订单状态按"已支付/未支付" 分组;任务按"高/低优先级"分组。
用法:
success, failure := slicex.Partition(results, func(r Result) bool {
return r.Error == nil
})
注意: 跟 GroupBy 的区别是 GroupBy 返回 map[K][]T,Partition 返回 两组互斥切片(matching + rest);如果需要 N 个 key 分组用 GroupBy, 二选一分组用 Partition。
func ToMap ¶
func ToMap[T any, K comparable](slice []T, keyFn func(T) K) map[K]T
ToMap 将切片转为 map,key 由 keyFn 提取。
Types ¶
This section is empty.
Click to show internal directories.
Click to hide internal directories.