collect

package
v1.18.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 4, 2026 License: MIT Imports: 15 Imported by: 5

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Count

func Count[T comparable](collection []T) (count int)

Count counts the number of elements in the collection.

func CountBy

func CountBy[T any](collection []T, predicate func(item T) bool) (count int)

CountBy counts the number of elements in the collection for which predicate is true.

func Diff added in v1.17.0

func Diff[T comparable](list1, list2 []T) []T

Diff creates a slice of slice values not included in the other given slice.

func Each

func Each[T any](collection []T, iteratee func(item T, index int))

Each iterates over elements of collection and invokes iteratee for each element.

func Filter

func Filter[V any](collection []V, predicate func(item V, index int) bool) []V

Filter iterates over elements of collection, returning an array of all elements predicate returns truthy for.

func GroupBy

func GroupBy[T any, U comparable](collection []T, iteratee func(item T) U) map[U][]T

GroupBy returns an object composed of keys generated from the results of running each element of collection through iteratee.

func Keys

func Keys[K comparable, V any](in map[K]V) []K

Keys creates an array of the map keys.

func LazyReduce added in v1.18.0

func LazyReduce[T, R any](lc *LazyCollection[T], fn func(R, T, int) R, initial R) R

func Map

func Map[T any, R any](collection []T, iteratee func(item T, index int) R) []R

Map manipulates a slice and transforms it to a slice of another type.

func Max

func Max[T cmp.Ordered](collection []T) T

Max searches the maximum value of a collection.

func Merge

func Merge[K comparable, V any](maps ...map[K]V) map[K]V

Merge merges multiple maps from left to right.

func Min

func Min[T cmp.Ordered](collection []T) T

Min search the minimum value of a collection.

func Reverse

func Reverse[T any](collection []T) []T

Reverse reverses array so that the first element becomes the last, the second element becomes the second to last, and so on.

func Shuffle

func Shuffle[T any](collection []T) []T

Shuffle returns an array of shuffled values. Uses the Fisher-Yates shuffle algorithm.

func Split

func Split[T any](collection []T, size int) [][]T

Split returns an array of elements split into groups the length of size. If array can't be split evenly,

func Sum

func Sum[T constraints.Float | constraints.Integer | constraints.Complex](collection []T) T

Sum sums the values in a collection. If collection is empty 0 is returned.

func Unique

func Unique[T comparable](collections ...[]T) []T

Unique returns a duplicate-free version of an array, in which only the first occurrence of each element is kept.

func Values

func Values[K comparable, V any](in map[K]V) []V

Values creates an array of the map values.

Types

type Collection added in v1.18.0

type Collection[T any] struct {
	// contains filtered or unexported fields
}

func New added in v1.18.0

func New[T any](items ...T) *Collection[T]

func Of added in v1.18.0

func Of[T any](items []T) *Collection[T]

func (*Collection[T]) After added in v1.18.0

func (c *Collection[T]) After(value T) *T

func (*Collection[T]) All added in v1.18.0

func (c *Collection[T]) All() []T

func (*Collection[T]) Avg added in v1.18.0

func (c *Collection[T]) Avg(keyFunc func(T) float64) float64

func (*Collection[T]) Before added in v1.18.0

func (c *Collection[T]) Before(value T) *T

func (*Collection[T]) Chunk added in v1.18.0

func (c *Collection[T]) Chunk(size int) [][]T

func (*Collection[T]) ChunkWhile added in v1.18.0

func (c *Collection[T]) ChunkWhile(predicate func(T, int, []T) bool) [][]T

func (*Collection[T]) Clone added in v1.18.0

func (c *Collection[T]) Clone() *Collection[T]

func (*Collection[T]) Collapse added in v1.18.0

func (c *Collection[T]) Collapse() *Collection[T]

func (*Collection[T]) Concat added in v1.18.0

func (c *Collection[T]) Concat(other *Collection[T]) *Collection[T]

func (*Collection[T]) Contains added in v1.18.0

func (c *Collection[T]) Contains(value T) bool

func (*Collection[T]) ContainsStrict added in v1.18.0

func (c *Collection[T]) ContainsStrict(value T) bool

func (*Collection[T]) Count added in v1.18.0

func (c *Collection[T]) Count() int

func (*Collection[T]) CountBy added in v1.18.0

func (c *Collection[T]) CountBy(keyFunc func(T) string) map[string]int

func (*Collection[T]) CrossJoin added in v1.18.0

func (c *Collection[T]) CrossJoin(other *Collection[T]) [][]T

func (*Collection[T]) Diff added in v1.18.0

func (c *Collection[T]) Diff(other *Collection[T]) *Collection[T]

func (*Collection[T]) DiffAssoc added in v1.18.0

func (c *Collection[T]) DiffAssoc(other *Collection[T]) *Collection[T]

func (*Collection[T]) DiffKeys added in v1.18.0

func (c *Collection[T]) DiffKeys(other *Collection[T]) *Collection[T]

func (*Collection[T]) DoesntContain added in v1.18.0

func (c *Collection[T]) DoesntContain(value T) bool

func (*Collection[T]) Dot added in v1.18.0

func (c *Collection[T]) Dot() map[string]any

func (*Collection[T]) Duplicates added in v1.18.0

func (c *Collection[T]) Duplicates() *Collection[T]

func (*Collection[T]) Each added in v1.18.0

func (c *Collection[T]) Each(fn func(T, int)) *Collection[T]

func (*Collection[T]) EachSpread added in v1.18.0

func (c *Collection[T]) EachSpread(fn func(...T)) *Collection[T]

func (*Collection[T]) EachUntil added in v1.18.0

func (c *Collection[T]) EachUntil(fn func(T, int) bool) *Collection[T]

func (*Collection[T]) Every added in v1.18.0

func (c *Collection[T]) Every(predicate func(T) bool) bool

func (*Collection[T]) Except added in v1.18.0

func (c *Collection[T]) Except(indices ...int) *Collection[T]

func (*Collection[T]) Filter added in v1.18.0

func (c *Collection[T]) Filter(predicate func(T, int) bool) *Collection[T]

func (*Collection[T]) First added in v1.18.0

func (c *Collection[T]) First() *T

func (*Collection[T]) FirstWhere added in v1.18.0

func (c *Collection[T]) FirstWhere(predicate func(T) bool) *T

func (*Collection[T]) FlatMap added in v1.18.0

func (c *Collection[T]) FlatMap(fn func(T) []T) *Collection[T]

func (*Collection[T]) ForPage added in v1.18.0

func (c *Collection[T]) ForPage(page, perPage int) *Collection[T]

func (*Collection[T]) Forget added in v1.18.0

func (c *Collection[T]) Forget(indices ...int) *Collection[T]

func (*Collection[T]) Get added in v1.18.0

func (c *Collection[T]) Get(index int) *T

func (*Collection[T]) Has added in v1.18.0

func (c *Collection[T]) Has(index int) bool

func (*Collection[T]) HasAny added in v1.18.0

func (c *Collection[T]) HasAny(indices ...int) bool

func (*Collection[T]) Intersect added in v1.18.0

func (c *Collection[T]) Intersect(other *Collection[T]) *Collection[T]

func (*Collection[T]) IntersectByKeys added in v1.18.0

func (c *Collection[T]) IntersectByKeys(other *Collection[T]) *Collection[T]

func (*Collection[T]) IsEmpty added in v1.18.0

func (c *Collection[T]) IsEmpty() bool

func (*Collection[T]) IsNotEmpty added in v1.18.0

func (c *Collection[T]) IsNotEmpty() bool

func (*Collection[T]) Join added in v1.18.0

func (c *Collection[T]) Join(separator string) string

func (*Collection[T]) KeyBy added in v1.18.0

func (c *Collection[T]) KeyBy(keyFunc func(T) string) map[string]T

func (*Collection[T]) Keys added in v1.18.0

func (c *Collection[T]) Keys() []int

func (*Collection[T]) Last added in v1.18.0

func (c *Collection[T]) Last() *T

func (*Collection[T]) Map added in v1.18.0

func (c *Collection[T]) Map(fn func(T, int) any) *Collection[any]

func (*Collection[T]) MapInto added in v1.18.0

func (c *Collection[T]) MapInto(target any) *Collection[any]

MapInto maps each element of the collection using reflection to cast to target type and returns a new collection of the target type

func (*Collection[T]) MapSpread added in v1.18.0

func (c *Collection[T]) MapSpread(fn func(...T) T) *Collection[T]

func (*Collection[T]) MapToDictionary added in v1.18.0

func (c *Collection[T]) MapToDictionary(keyFunc func(T) string) map[string][]T

func (*Collection[T]) MapToGroups added in v1.18.0

func (c *Collection[T]) MapToGroups(keyFunc func(T, int) string) map[string]*Collection[T]

func (*Collection[T]) MapWithKeys added in v1.18.0

func (c *Collection[T]) MapWithKeys(fn func(T) (string, T)) map[string]T

func (*Collection[T]) Max added in v1.18.0

func (c *Collection[T]) Max(keyFunc func(T) float64) float64

func (*Collection[T]) Median added in v1.18.0

func (c *Collection[T]) Median(keyFunc func(T) float64) float64

func (*Collection[T]) Min added in v1.18.0

func (c *Collection[T]) Min(keyFunc func(T) float64) float64

func (*Collection[T]) Mode added in v1.18.0

func (c *Collection[T]) Mode(keyFunc func(T) string) []string

func (*Collection[T]) Nth added in v1.18.0

func (c *Collection[T]) Nth(n int) *Collection[T]

func (*Collection[T]) Only added in v1.18.0

func (c *Collection[T]) Only(indices ...int) *Collection[T]

func (*Collection[T]) Pad added in v1.18.0

func (c *Collection[T]) Pad(size int, value T) *Collection[T]

func (*Collection[T]) Partition added in v1.18.0

func (c *Collection[T]) Partition(predicate func(T) bool) (*Collection[T], *Collection[T])

func (*Collection[T]) Pipe added in v1.18.0

func (c *Collection[T]) Pipe(fn func(*Collection[T]) any) any

func (*Collection[T]) Pluck added in v1.18.0

func (c *Collection[T]) Pluck(field string) *Collection[any]

func (*Collection[T]) Pop added in v1.18.0

func (c *Collection[T]) Pop() *T

func (*Collection[T]) Prepend added in v1.18.0

func (c *Collection[T]) Prepend(items ...T) *Collection[T]

func (*Collection[T]) Pull added in v1.18.0

func (c *Collection[T]) Pull(index int) *T

func (*Collection[T]) Push added in v1.18.0

func (c *Collection[T]) Push(items ...T) *Collection[T]

func (*Collection[T]) Put added in v1.18.0

func (c *Collection[T]) Put(index int, value T) *Collection[T]

func (*Collection[T]) Random added in v1.18.0

func (c *Collection[T]) Random() *T

func (*Collection[T]) Reduce added in v1.18.0

func (c *Collection[T]) Reduce(fn func(acc any, item T, index int) any, initial any) any

Reduce reduces the collection to a single value using the given reducer function

func (*Collection[T]) Reject added in v1.18.0

func (c *Collection[T]) Reject(predicate func(T, int) bool) *Collection[T]

func (*Collection[T]) Replace added in v1.18.0

func (c *Collection[T]) Replace(replacements map[int]T) *Collection[T]

func (*Collection[T]) Reverse added in v1.18.0

func (c *Collection[T]) Reverse() *Collection[T]

func (*Collection[T]) Search added in v1.18.0

func (c *Collection[T]) Search(value T) int

func (*Collection[T]) SearchBy added in v1.18.0

func (c *Collection[T]) SearchBy(predicate func(T) bool) int

func (*Collection[T]) Shift added in v1.18.0

func (c *Collection[T]) Shift() *T

func (*Collection[T]) Shuffle added in v1.18.0

func (c *Collection[T]) Shuffle() *Collection[T]

func (*Collection[T]) Skip added in v1.18.0

func (c *Collection[T]) Skip(n int) *Collection[T]

func (*Collection[T]) SkipUntil added in v1.18.0

func (c *Collection[T]) SkipUntil(predicate func(T) bool) *Collection[T]

func (*Collection[T]) SkipWhile added in v1.18.0

func (c *Collection[T]) SkipWhile(predicate func(T) bool) *Collection[T]

func (*Collection[T]) Slice added in v1.18.0

func (c *Collection[T]) Slice(offset int, length ...int) *Collection[T]

func (*Collection[T]) Sort added in v1.18.0

func (c *Collection[T]) Sort(less func(T, T) bool) *Collection[T]

func (*Collection[T]) SortBy added in v1.18.0

func (c *Collection[T]) SortBy(keyFunc func(T) string) *Collection[T]

func (*Collection[T]) SortByDesc added in v1.18.0

func (c *Collection[T]) SortByDesc(keyFunc func(T) string) *Collection[T]

func (*Collection[T]) SortDesc added in v1.18.0

func (c *Collection[T]) SortDesc(less func(T, T) bool) *Collection[T]

func (*Collection[T]) Splice added in v1.18.0

func (c *Collection[T]) Splice(start, deleteCount int, replacement ...T) *Collection[T]

func (*Collection[T]) Split added in v1.18.0

func (c *Collection[T]) Split(groups int) [][]T

func (*Collection[T]) Sum added in v1.18.0

func (c *Collection[T]) Sum(keyFunc func(T) float64) float64

func (*Collection[T]) Take added in v1.18.0

func (c *Collection[T]) Take(n int) *Collection[T]

func (*Collection[T]) TakeUntil added in v1.18.0

func (c *Collection[T]) TakeUntil(predicate func(T) bool) *Collection[T]

func (*Collection[T]) TakeWhile added in v1.18.0

func (c *Collection[T]) TakeWhile(predicate func(T) bool) *Collection[T]

func (*Collection[T]) Tap added in v1.18.0

func (c *Collection[T]) Tap(fn func(*Collection[T])) *Collection[T]

func (*Collection[T]) ToJson added in v1.18.0

func (c *Collection[T]) ToJson() (string, error)

func (*Collection[T]) Transform added in v1.18.0

func (c *Collection[T]) Transform(fn func(T, int) T) *Collection[T]

func (*Collection[T]) Union added in v1.18.0

func (c *Collection[T]) Union(other *Collection[T]) *Collection[T]

func (*Collection[T]) Unique added in v1.18.0

func (c *Collection[T]) Unique() *Collection[T]

func (*Collection[T]) UniqueBy added in v1.18.0

func (c *Collection[T]) UniqueBy(keyFunc func(T) string) *Collection[T]

func (*Collection[T]) Unless added in v1.18.0

func (c *Collection[T]) Unless(condition bool, fn func(*Collection[T]) *Collection[T]) *Collection[T]

func (*Collection[T]) UnlessEmpty added in v1.18.0

func (c *Collection[T]) UnlessEmpty(fn func(*Collection[T]) *Collection[T]) *Collection[T]

func (*Collection[T]) UnlessNotEmpty added in v1.18.0

func (c *Collection[T]) UnlessNotEmpty(fn func(*Collection[T]) *Collection[T]) *Collection[T]

func (*Collection[T]) Unshift added in v1.18.0

func (c *Collection[T]) Unshift(items ...T) *Collection[T]

func (*Collection[T]) When added in v1.18.0

func (c *Collection[T]) When(condition bool, fn func(*Collection[T]) *Collection[T]) *Collection[T]

func (*Collection[T]) WhenEmpty added in v1.18.0

func (c *Collection[T]) WhenEmpty(fn func(*Collection[T]) *Collection[T]) *Collection[T]

func (*Collection[T]) WhenNotEmpty added in v1.18.0

func (c *Collection[T]) WhenNotEmpty(fn func(*Collection[T]) *Collection[T]) *Collection[T]

func (*Collection[T]) Where added in v1.18.0

func (c *Collection[T]) Where(params ...any) *Collection[T]

func (*Collection[T]) WhereIn added in v1.18.0

func (c *Collection[T]) WhereIn(field string, values []any) *Collection[T]

func (*Collection[T]) WhereNotIn added in v1.18.0

func (c *Collection[T]) WhereNotIn(field string, values []any) *Collection[T]

func (*Collection[T]) WhereNotNull added in v1.18.0

func (c *Collection[T]) WhereNotNull(field string) *Collection[T]

func (*Collection[T]) WhereNull added in v1.18.0

func (c *Collection[T]) WhereNull(field string) *Collection[T]

func (*Collection[T]) Zip added in v1.18.0

func (c *Collection[T]) Zip(other *Collection[T]) [][]T

type LazyCollection added in v1.18.0

type LazyCollection[T any] struct {
	// contains filtered or unexported fields
}

func LazyFromChannel added in v1.18.0

func LazyFromChannel[T any](ch <-chan T) *LazyCollection[T]

func LazyFromFunc added in v1.18.0

func LazyFromFunc[T any](fn func() <-chan T) *LazyCollection[T]

func LazyGenerate added in v1.18.0

func LazyGenerate[T any](fn func(int) T, count int) *LazyCollection[T]

func LazyMap added in v1.18.0

func LazyMap[T, R any](lc *LazyCollection[T], fn func(T, int) R) *LazyCollection[R]

func LazyNew added in v1.18.0

func LazyNew[T any](items ...T) *LazyCollection[T]

func LazyOf added in v1.18.0

func LazyOf[T any](items []T) *LazyCollection[T]

func LazyRange added in v1.18.0

func LazyRange(start, end int) *LazyCollection[int]

func LazyRepeat added in v1.18.0

func LazyRepeat[T any](value T, count int) *LazyCollection[T]

func (*LazyCollection[T]) All added in v1.18.0

func (lc *LazyCollection[T]) All() []T

func (*LazyCollection[T]) Avg added in v1.18.0

func (lc *LazyCollection[T]) Avg(keyFunc func(T) float64) float64

func (*LazyCollection[T]) Chunk added in v1.18.0

func (lc *LazyCollection[T]) Chunk(size int) [][]T

func (*LazyCollection[T]) Collect added in v1.18.0

func (lc *LazyCollection[T]) Collect() *Collection[T]

func (*LazyCollection[T]) Contains added in v1.18.0

func (lc *LazyCollection[T]) Contains(value T) bool

func (*LazyCollection[T]) Count added in v1.18.0

func (lc *LazyCollection[T]) Count() int

func (*LazyCollection[T]) CountBy added in v1.18.0

func (lc *LazyCollection[T]) CountBy(keyFunc func(T) string) map[string]int

func (*LazyCollection[T]) Each added in v1.18.0

func (lc *LazyCollection[T]) Each(fn func(T, int)) *LazyCollection[T]

func (*LazyCollection[T]) Every added in v1.18.0

func (lc *LazyCollection[T]) Every(predicate func(T) bool) bool

func (*LazyCollection[T]) Filter added in v1.18.0

func (lc *LazyCollection[T]) Filter(predicate func(T, int) bool) *LazyCollection[T]

func (*LazyCollection[T]) First added in v1.18.0

func (lc *LazyCollection[T]) First() *T

func (*LazyCollection[T]) FirstWhere added in v1.18.0

func (lc *LazyCollection[T]) FirstWhere(predicate func(T) bool) *T

func (*LazyCollection[T]) FlatMap added in v1.18.0

func (lc *LazyCollection[T]) FlatMap(fn func(T) []T) *LazyCollection[T]

func (*LazyCollection[T]) IsEmpty added in v1.18.0

func (lc *LazyCollection[T]) IsEmpty() bool

func (*LazyCollection[T]) IsNotEmpty added in v1.18.0

func (lc *LazyCollection[T]) IsNotEmpty() bool

func (*LazyCollection[T]) Iterator added in v1.18.0

func (lc *LazyCollection[T]) Iterator() LazyIterator[T]

func (*LazyCollection[T]) Join added in v1.18.0

func (lc *LazyCollection[T]) Join(separator string) string

func (*LazyCollection[T]) Last added in v1.18.0

func (lc *LazyCollection[T]) Last() *T

func (*LazyCollection[T]) Map added in v1.18.0

func (lc *LazyCollection[T]) Map(fn func(T, int) any) *LazyCollection[any]

func (*LazyCollection[T]) Max added in v1.18.0

func (lc *LazyCollection[T]) Max(keyFunc func(T) float64) float64

func (*LazyCollection[T]) Min added in v1.18.0

func (lc *LazyCollection[T]) Min(keyFunc func(T) float64) float64

func (*LazyCollection[T]) Partition added in v1.18.0

func (lc *LazyCollection[T]) Partition(predicate func(T) bool) (*Collection[T], *Collection[T])

func (*LazyCollection[T]) Pluck added in v1.18.0

func (lc *LazyCollection[T]) Pluck(field string) *LazyCollection[any]

func (*LazyCollection[T]) Reject added in v1.18.0

func (lc *LazyCollection[T]) Reject(predicate func(T, int) bool) *LazyCollection[T]

func (*LazyCollection[T]) Reverse added in v1.18.0

func (lc *LazyCollection[T]) Reverse() *LazyCollection[T]

func (*LazyCollection[T]) Skip added in v1.18.0

func (lc *LazyCollection[T]) Skip(n int) *LazyCollection[T]

func (*LazyCollection[T]) SkipWhile added in v1.18.0

func (lc *LazyCollection[T]) SkipWhile(predicate func(T, int) bool) *LazyCollection[T]

func (*LazyCollection[T]) Sort added in v1.18.0

func (lc *LazyCollection[T]) Sort(less func(T, T) bool) *LazyCollection[T]

func (*LazyCollection[T]) SortBy added in v1.18.0

func (lc *LazyCollection[T]) SortBy(keyFunc func(T) string) *LazyCollection[T]

func (*LazyCollection[T]) Sum added in v1.18.0

func (lc *LazyCollection[T]) Sum(keyFunc func(T) float64) float64

func (*LazyCollection[T]) Take added in v1.18.0

func (lc *LazyCollection[T]) Take(n int) *LazyCollection[T]

func (*LazyCollection[T]) TakeWhile added in v1.18.0

func (lc *LazyCollection[T]) TakeWhile(predicate func(T, int) bool) *LazyCollection[T]

func (*LazyCollection[T]) Tap added in v1.18.0

func (lc *LazyCollection[T]) Tap(fn func(*LazyCollection[T])) *LazyCollection[T]

func (*LazyCollection[T]) ToJson added in v1.18.0

func (lc *LazyCollection[T]) ToJson() (string, error)

func (*LazyCollection[T]) Unique added in v1.18.0

func (lc *LazyCollection[T]) Unique() *LazyCollection[T]

func (*LazyCollection[T]) UniqueBy added in v1.18.0

func (lc *LazyCollection[T]) UniqueBy(keyFunc func(T) string) *LazyCollection[T]

func (*LazyCollection[T]) When added in v1.18.0

func (lc *LazyCollection[T]) When(condition bool, fn func(*LazyCollection[T]) *LazyCollection[T]) *LazyCollection[T]

func (*LazyCollection[T]) Where added in v1.18.0

func (lc *LazyCollection[T]) Where(params ...any) *LazyCollection[T]

func (*LazyCollection[T]) WhereIn added in v1.18.0

func (lc *LazyCollection[T]) WhereIn(field string, values []any) *LazyCollection[T]

func (*LazyCollection[T]) WhereNotIn added in v1.18.0

func (lc *LazyCollection[T]) WhereNotIn(field string, values []any) *LazyCollection[T]

func (*LazyCollection[T]) Zip added in v1.18.0

func (lc *LazyCollection[T]) Zip(other *LazyCollection[T]) [][]T

type LazyIterator added in v1.18.0

type LazyIterator[T any] interface {
	Next() (T, bool)
	Reset()
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL