gitee.com/zhongguo168a/gocodes@v0.0.0-20230609140523-e1828349603f/datax/listx/constraints/iface.go (about) 1 package constraints 2 3 type IList[V comparable] interface { 4 Add(items ...V) 5 AddConf(cond func(index int, item V) bool, items ...V) 6 Set(index int, val V) 7 SetList(val []V) 8 At(index int) V 9 Clear() 10 Dispose() 11 Clone() *List[V] 12 Contains(item V) bool 13 ContainsCond(cond func(index int, item V) bool) bool 14 CountCond(cond func(index int, item V) bool) int 15 Every(cond func(index int, item V) bool) bool 16 First(cond func(index int, item V) bool) (val V, has bool) 17 Filter(cond func(index int, item V) bool) *List[V] 18 ForRange(handler func(index int, item V) error) 19 IndexOfConf(cond func(index int, item V) bool) int 20 IndexOf(item V) int 21 Last(cond func(index int, item V) bool) (val V, has bool) 22 Length() int 23 Pop() V 24 Push(item V) 25 PushList(val IList[V]) 26 Remove(item V) 27 RemoveAt(i int) 28 Replace(i int, item V) 29 Reverse() 30 Shift() V 31 Slice() []V 32 Self() *List[V] 33 Sort(compare func(a, b V) int) 34 Unshift(item V) 35 Unique() *List[V] 36 UniqueByCustomKey(getKey func(item V) string) *List[V] 37 Union(a IList[V]) *List[V] 38 UnionByCustomKey(a IList[V], getKey func(a V) string) *List[V] 39 40 GroupByCount(count int) (r []*List[V]) 41 GroupByCustomKey(getKey func(item V) string) map[string]*List[V] 42 }