Documentation ¶
Index ¶
- Constants
- func BinarySearch[V constraints.Ordered](arr []constraints2.CompareKey[V], x constraints2.CompareKey[V]) int
- func Cast[T1, T2 any, T1S ~[]T1](s T1S) []T2
- func Cast2[T1, T2 any, T1S ~[]T1, T2S ~[]T2](s T1S) T2S
- func Classify[S ~[]T, T any, K comparable, V any](s S, getKV func(T) (K, V)) map[K][]V
- func Contains[S ~[]T, T comparable](s S, v T) bool
- func ContainsByKey[S ~[]cmp.EqualKey[K], K comparable](s S, v K) bool
- func Deduplicate[S ~[]T, T comparable](slice S) S
- func Difference[S ~[]T, T comparable](a, b S) (S, S)
- func DifferenceByKey[S ~[]E, E cmp.EqualKey[T], T comparable](a, b S) (S, S)
- func DifferenceSet[S ~[]T, T comparable](a S, b S) S
- func DifferenceSetByKey[S ~[]E, E cmp.EqualKey[T], T comparable](a S, b S) S
- func Every[T any, S ~[]T](slice S, fn func(T) bool) bool
- func Filter[S ~[]T, T any](fn func(T) bool, src S) S
- func FilterPlace[S ~[]T, T any](slices S, fn func(T) bool) S
- func ForEach[S ~[]T, T any](s S, handle func(idx int, v T))
- func ForEachIndex[S ~[]T, T any](s S, handle func(i int))
- func ForEachValue[S ~[]T, T any](s S, handle func(v T))
- func GrowSlice(et *reflect.Type, old reflect.Slice, cap int) reflect.Slice
- func GuardSlice(buf *[]byte, n int)
- func HasCoincide[S ~[]T, T comparable](s1, s2 S) bool
- func HasCoincideByKey[S ~[]E, E cmp.EqualKey[T], T comparable](s1, s2 S) bool
- func In[S ~[]T, T comparable](v T, s S) bool
- func InByKey[S ~[]E, E cmp.EqualKey[K], K comparable](key K, s S) bool
- func Index[S ~[]T, T comparable](v T, s S) int
- func Intersection[S ~[]T, T comparable](a S, b S) S
- func IntersectionByKey[S ~[]E, E cmp.EqualKey[T], T comparable](a S, b S) S
- func IntersectionMap[S ~[]T, T comparable](a S, b S) map[T]struct{}
- func Join[S ~[]T, T fmt.Stringer](s S, sep string) string
- func JoinByIndex[S ~[]T, T any](s S, toString func(i int) string, sep string) string
- func JoinByValue[S ~[]T, T any](s S, toString func(v T) string, sep string) string
- func Map[T1, T2 any, T1S ~[]T1](s T1S, fn func(T1) T2) []T2
- func Map2[T1, T2 any, T1S ~[]T1, T2S ~[]T2](s T1S, fn func(T1) T2) T2S
- func Max[S ~[]T, T constraints.Number](s S) T
- func Min[S ~[]T, T constraints.Number](s S) T
- func OrderedArrayIntersection[S ~[]T, T constraints.Ordered](a S, b S) S
- func Ptr2SlicePtr(s unsafe.Pointer, l int, c int) unsafe.Pointer
- func Reduce[S ~[]T, T any](slices S, fn func(T, T) T) T
- func Remove[S ~[]T, T any](slices S, i int) S
- func RemoveDuplicates[S ~[]T, T comparable](s S) S
- func RemoveDuplicatesByKey[S ~[]E, E cmp.EqualKey[T], T comparable](s S) S
- func RemoveDuplicatesByKeyRetainBehind[S ~[]E, E cmp.EqualKey[T], T comparable](s S) S
- func Reverse[S ~[]T, T any](s S) S
- func ReverseForEach[S ~[]T, T any](s S, handle func(idx int, v T))
- func Some[T any, S ~[]T](slice S, fn func(T) bool) bool
- func Swap[S ~[]T, T any](s S, i, j int)
- func ToMap[S ~[]T, T any, K comparable, V any](s S, getKV func(T) (K, V)) map[K]V
- func Union[S ~[]T, T comparable](a S, b S) S
- func UnionAndIntersectionAndDifference[S ~[]T, T comparable](a, b S) (S, S, S, S)
- func UnionByKey[S ~[]E, E cmp.EqualKey[T], T comparable](a S, b S) S
- func Zip[T any, S ~[]T](s1, s2 S) [][2]T
- type Collector
Constants ¶
View Source
const SmallArrayLen = 32
Variables ¶
This section is empty.
Functions ¶
func BinarySearch ¶
func BinarySearch[V constraints.Ordered](arr []constraints2.CompareKey[V], x constraints2.CompareKey[V]) int
BinarySearch 二分查找
func Classify ¶
func Classify[S ~[]T, T any, K comparable, V any](s S, getKV func(T) (K, V)) map[K][]V
将切片按照某个key分类
func Contains ¶
func Contains[S ~[]T, T comparable](s S, v T) bool
func ContainsByKey ¶
func ContainsByKey[S ~[]cmp.EqualKey[K], K comparable](s S, v K) bool
func DifferenceByKey ¶
func DifferenceByKey[S ~[]E, E cmp.EqualKey[T], T comparable](a, b S) (S, S)
取差集,通过循环比较key
func DifferenceSetByKey ¶
func DifferenceSetByKey[S ~[]E, E cmp.EqualKey[T], T comparable](a S, b S) S
指定key取差集,返回为A-B
func FilterPlace ¶ added in v0.1.12
func ForEachValue ¶
func ForEachValue[S ~[]T, T any](s S, handle func(v T))
func GuardSlice ¶
func HasCoincide ¶
func HasCoincide[S ~[]T, T comparable](s1, s2 S) bool
没有泛型,范例,实际需根据不同类型各写一遍,用CmpKey,基本类型又用不了,go需要能给基本类型实现方法不能给外部类型实现方法 1.20以后字段均是comparable的结构体也是comparable的 判断是否有重合元素
func HasCoincideByKey ¶
func HasCoincideByKey[S ~[]E, E cmp.EqualKey[T], T comparable](s1, s2 S) bool
func In ¶
func In[S ~[]T, T comparable](v T, s S) bool
func Index ¶
func Index[S ~[]T, T comparable](v T, s S) int
func IntersectionByKey ¶
func IntersectionByKey[S ~[]E, E cmp.EqualKey[T], T comparable](a S, b S) S
默认保留前一个的,靠前的元素
func IntersectionMap ¶
func IntersectionMap[S ~[]T, T comparable](a S, b S) map[T]struct{}
func JoinByIndex ¶
func JoinByValue ¶
func Max ¶
func Max[S ~[]T, T constraints.Number](s S) T
func Min ¶
func Min[S ~[]T, T constraints.Number](s S) T
func OrderedArrayIntersection ¶
func OrderedArrayIntersection[S ~[]T, T constraints.Ordered](a S, b S) S
有序数组取交集
func RemoveDuplicates ¶
func RemoveDuplicates[S ~[]T, T comparable](s S) S
func RemoveDuplicatesByKey ¶
func RemoveDuplicatesByKey[S ~[]E, E cmp.EqualKey[T], T comparable](s S) S
默认保留先遍历到的
func RemoveDuplicatesByKeyRetainBehind ¶
func RemoveDuplicatesByKeyRetainBehind[S ~[]E, E cmp.EqualKey[T], T comparable](s S) S
func ReverseForEach ¶
func ToMap ¶
func ToMap[S ~[]T, T any, K comparable, V any](s S, getKV func(T) (K, V)) map[K]V
将切片转换为map
func UnionAndIntersectionAndDifference ¶
func UnionAndIntersectionAndDifference[S ~[]T, T comparable](a, b S) (S, S, S, S)
交集和差集,返回A∪B A∩B,A-B,B-A
Types ¶
Click to show internal directories.
Click to hide internal directories.