Documentation ¶
Index ¶
- func GroupingBy[T any, K comparable, V any](ts []T, getKey func(t T) K, getVal func(t T) V) map[K][]V
- func GroupingByIdentity[T any, K comparable](ts []T, getKey func(t T) K) map[K][]T
- func ToMap[T any, K comparable, V any](ts []T, getKey func(t T) K, getVal func(t T) V) map[K]V
- func ToMapIdentity[T any, K comparable](ts []T, getKey func(t T) K) map[K]T
- type ComparableStream
- type Number
- type NumberStream
- type OrderedStream
- type StrStream
- type Stream
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func GroupingBy ¶
func GroupingBy[T any, K comparable, V any](ts []T, getKey func(t T) K, getVal func(t T) V) map[K][]V
GroupingBy 将集合ts根据key分组转换为map[K][]V, 根据getKey函数指定 “K类型” 的key,根据getVal函数指定 “V类型” 的value
func GroupingByIdentity ¶
func GroupingByIdentity[T any, K comparable](ts []T, getKey func(t T) K) map[K][]T
GroupingByIdentity 将集合ts根据key分组转换为map[K][]T, 根据getKey函数指定 “K类型” 的key
func ToMap ¶
func ToMap[T any, K comparable, V any](ts []T, getKey func(t T) K, getVal func(t T) V) map[K]V
ToMap 将集合ts转换为map[K]V, 根据getKey函数指定 “K类型” 的key,根据getVal函数指定 “V类型” 的value
func ToMapIdentity ¶
func ToMapIdentity[T any, K comparable](ts []T, getKey func(t T) K) map[K]T
ToMapIdentity 将集合ts转换为map[K]T, 根据getKey函数指定 “K类型” 的key
Types ¶
type ComparableStream ¶
type ComparableStream[T comparable] interface { Stream[T] }
ComparableStream 继承Stream接口,可以扩展comparable类型的 Stream
type NumberStream ¶
type NumberStream[N Number] interface { OrderedStream[N] Sum() N Max() N Min() N Avg() float64 }
type OrderedStream ¶
type OrderedStream[T cmp.Ordered] interface { ComparableStream[T] }
OrderedStream 继承Stream接口,可以扩展cmp.Ordered类型的 Stream
type Stream ¶
type Stream[T any] interface { // MapIdentity 将集合中T类型t转为一个新的T类型数据 MapIdentity(convert func(t T) T) Stream[T] // Peek 执行eachDo函数,对t做操作会影响原始值,某种意义上来说和 MapIdentity 功能类似 Peek(eachDo func(t *T)) Stream[T] // Filter 判断t是否需要过滤 // filter 函数返回true表示保留t,返回false表示剔除t Filter(filter func(t T) bool) Stream[T] // Skip 跳过limit个元素 Skip(limit int) Stream[T] // SkipIndex 从index下标开始,跳过limit个元素 SkipIndex(index int, limit int) Stream[T] // Distinct 集合去重方法 Distinct() Stream[T] // Sort 升序排序,如果是不可比较类型,会将T转为json字符串作为比较类型 Sort() Stream[T] // SortFunc 可以取T中的某些属性进行排序 // 调用示例: // // slices.SortFunc(my.list, func(a, b T) int { // return cmp.Or( // cmp.Compare(a.Customer, b.Customer), // cmp.Compare(a.Product, b.Product), // cmp.Compare(b.Price, a.Price), // ) // }) SortFunc(cmp func(a, b T) int) Stream[T] // Reverse 将当前集合倒叙排序 Reverse() Stream[T] // MapToInt 将T类型的Stream转为NumberStream[int]类型的Stream MapToInt(toIntFun func(t T) int) NumberStream[int] // MapToLong 将T类型的Stream转为NumberStream[int64]类型的Stream MapToLong(toLongFun func(t T) int64) NumberStream[int64] // MapToDouble 将T类型的Stream转为NumberStream[float64]类型的Stream MapToDouble(toDoubleFun func(t T) float64) NumberStream[float64] // MapToString 将T类型的Stream转为StrStream类型的Stream MapToString(toStrFun func(t T) string) StrStream // FindFirst 返回集合第一个元素的指针,空集合则返回nil FindFirst() *T // FindFirstOrElse 返回集合第一个元素,空集合则返回默认值ele // ele - T类型默认值 FindFirstOrElse(ele T) T // FindFirstOrElseGet 返回集合第一个元素,空集合则执行get函数返回 // get - 获取T类型默认值的函数 FindFirstOrElseGet(get func() T) T // ToSlice 返回T类型的切片 ToSlice() []T // ForEach 遍历集合,调用eachDo函数执行操作 ForEach(eachDo func(t T)) // Count 返回集合数量count Count() int // ToMapStrKey 将集合转换为map[string]any, 根据getKey函数指定 “string类型” 的key,根据getVal函数指定value // getKey - 根据t获取key的函数 // getVal - 根据t获取value的函数 ToMapStrKey(getKey func(t T) string, getVal func(t T) any) map[string]any // ToMapIntKey 将集合转换为map[int]any, 根据getKey函数指定 “int类型” 的key,根据getVal函数指定value // getKey - 根据t获取key的函数 // getVal - 根据t获取value的函数 ToMapIntKey(getKey func(t T) int, getVal func(t T) any) map[int]any // ToMapLongKey 将集合转换为map[int64]any, 根据getKey函数指定 “int64类型” 的key,根据getVal函数指定value // getKey - 根据t获取key的函数 // getVal - 根据t获取value的函数 ToMapLongKey(getKey func(t T) int64, getVal func(t T) any) map[int64]any // ToMapIdentityStrKey 将集合转换为map[string]T, 根据getKey函数指定 “string类型” 的key // getKey - 根据t获取key的函数 ToMapIdentityStrKey(getKey func(t T) string) map[string]T // ToMapIdentityIntKey 将集合转换为map[int]T, 根据getKey函数指定 “int类型” 的key // getKey - 根据t获取key的函数 ToMapIdentityIntKey(getKey func(t T) int) map[int]T // ToMapIdentityLongKey 将集合转换为map[int64]T, 根据getKey函数指定 “int64类型” 的key // getKey - 根据t获取key的函数 ToMapIdentityLongKey(getKey func(t T) int64) map[int64]T // GroupingByIdentityStrKey 将集合根据key分组转换为map[string][]T, 根据getKey函数指定 “string类型” 的key // getKey - 根据t获取key的函数 GroupingByIdentityStrKey(getKey func(t T) string) map[string][]T // GroupingByIdentityIntKey 将集合根据key分组转换为map[int][]T, 根据getKey函数指定 “int类型” 的key // getKey - 根据t获取key的函数 GroupingByIdentityIntKey(getKey func(t T) int) map[int][]T // GroupingByIdentityLongKey 将集合根据key分组转换为map[int64][]T, 根据getKey函数指定 “int64类型” 的key // getKey - 根据t获取key的函数 GroupingByIdentityLongKey(getKey func(t T) int64) map[int64][]T // AnyMatch 遍历集合,任意一个元素使得predicate函数返回true, 则返回true // 即:predicate(a) || predicate(b) ... AnyMatch(predicate func(t T) bool) bool // AllMatch 遍历集合,所有元素使得predicate函数返回true, 则返回true // 即:predicate(a) && predicate(b) ... AllMatch(predicate func(t T) bool) bool // NoneMatch 遍历集合,所有元素使得predicate函数返回false, 则返回true // 即:!(predicate(a) || predicate(b) ...) NoneMatch(predicate func(t T) bool) bool // Join 根据delimiter分隔符将集合中的所有元素拼接成一个字符串返回 Join(delimiter string) string // Join2 根据delimiter分隔符将集合中的所有元素拼接成一个字符串,然后拼接一个prefix前缀和一个suffix后缀返回 Join2(delimiter, prefix, suffix string) string }
Stream 定义 Stream[T] 接口
Click to show internal directories.
Click to hide internal directories.