Documentation
ΒΆ
Index ΒΆ
- func All[T any](in []T, f func(T) bool) bool
- func Any[T any](in []T, f func(T) bool) bool
- func Avg[T constraints.Number](in []T) float64
- func AvgBy[V any, T constraints.Number](in []V, f func(V) T) float64
- func AvgN[T constraints.Number](inputs ...T) float64
- func Chunk[T any, Slice ~[]T](in Slice, chunkSize int) []Slice
- func ChunkInPlace[T any, Slice ~[]T](in Slice, chunkSize int) []Slice
- func Clone[T any](in []T) []T
- func CloneBy[T any, U any](in []T, f func(T) U) []U
- func Compact[T comparable, Slice ~[]T](in Slice) Slice
- func Concat[T any](vs ...[]T) []T
- func Contains[T comparable](in []T, v T) bool
- func ContainsAll[T comparable](in []T, v []T) bool
- func ContainsAny[T comparable](in []T, v []T) bool
- func ContainsBy[T any](in []T, f func(T) bool) bool
- func Count[T any](in []T) int
- func Difference[T comparable, Slice ~[]T](left, right Slice) (onlyLeft, onlyRight Slice)
- func Filter[T any, Slice ~[]T](in Slice, f func(T) bool) Slice
- func Find[T any](in []T, f func(T) bool) (val T, found bool)
- func FindO[T any](in []T, f func(T) bool) optional.O[T]
- func First[T any, Slice ~[]T](in Slice) (T, bool)
- func FirstO[T any, Slice ~[]T](in Slice) optional.O[T]
- func ForEach[T any](in []T, f func(T) bool)
- func ForEachIdx[T any](in []T, f func(idx int, v T) bool)
- func GroupBy[T any, K comparable, Slice ~[]T](in Slice, f func(T) K) map[K]Slice
- func GroupByMap[T any, Slice ~[]T, K comparable, V any](in Slice, f func(T) (K, V)) map[K][]V
- func Head[T any](in []T) (v T, hasOne bool)
- func HeadO[T any](in []T) optional.O[T]
- func Index[T comparable, Slice ~[]T](in Slice, v T) int
- func Intersect[T comparable, Slice ~[]T](left, right Slice) Slice
- func Join[T ~string](in []T, sep T) T
- func Last[T any, Slice ~[]T](in Slice) (T, bool)
- func LastO[T any, Slice ~[]T](in Slice) optional.O[T]
- func Map[T any, U any](in []T, f func(T) U) []U
- func Max[T constraints.Ordered](in []T) optional.O[T]
- func MaxBy[T constraints.Ordered](in []T, f func(T, T) bool) optional.O[T]
- func MaxN[T constraints.Ordered](in ...T) optional.O[T]
- func Min[T constraints.Ordered](in []T) optional.O[T]
- func MinBy[T constraints.Ordered](in []T, f func(T, T) bool) optional.O[T]
- func MinN[T constraints.Ordered](in ...T) optional.O[T]
- func Repeat[T any, Slice ~[]T](in Slice, count int) Slice
- func RepeatBy[T any](n int, f func(i int) T) []T
- func Replace[T comparable, Slice ~[]T](in Slice, from, to T, count int) []T
- func ReplaceAll[T comparable, Slice ~[]T](in Slice, from, to T) []T
- func Reverse[T any, Slice ~[]T](in Slice)
- func ReverseClone[T any, Slice ~[]T](in Slice) Slice
- func Shuffle[T any, Slice ~[]T](in Slice) Slice
- func ShuffleInPlace[T any, Slice ~[]T](in Slice)
- func Subset[T any, Slice ~[]T](in Slice, start, count int) Slice
- func SubsetInPlace[T any, Slice ~[]T](in Slice, start int, count int) Slice
- func Sum[T constraints.Number, Slice ~[]T](in Slice) T
- func SumBy[T any, R constraints.Number, Slice ~[]T](in Slice, f func(T) R) R
- func SumN[T constraints.Number](in ...T) T
- func Union[T comparable, Slice ~[]T](left, right Slice) Slice
- func Uniq[T comparable, Slice ~[]T](in Slice) Slice
Constants ΒΆ
This section is empty.
Variables ΒΆ
This section is empty.
Functions ΒΆ
func All ΒΆ
All returns true if all elements in the slice satisfy the condition provided by f. return false if any element in the slice does not satisfy the condition provided by f.
EXAMPLE:
xslice.All([]int{1, 2, 3}, func(x int) bool { return x > 0 }) π true
xslice.All([]int{-1, 1, 2, 3}, func(x int) bool { return x > 0 }) π false
func Any ΒΆ
Any returns true if any element in the slice satisfy the condition provided by f. return false if none of element in the slice satisfy the condition provided by f.
EXAMPLE:
xslice.Any([]int{0, 1, 2, 3}, func(x int) bool { return x == 0 }) π true
xslice.Any([]int{0, 1, 2, 3}, func(x int) bool { return x == -1 }) π false
func Avg ΒΆ
func Avg[T constraints.Number](in []T) float64
Avg returns the average value of the items in slice (float64).
EXAMPLE:
xslice.Avg([]int{1, 2, 3}) π float(2)
xslice.Avg([]int{}) π float(0)
func AvgBy ΒΆ
func AvgBy[V any, T constraints.Number](in []V, f func(V) T) float64
AvgBy returns the averaged of each item's value evaluated by f.
EXAMPLE:
xslice.AvgBy([]string{"1", "2", "3"}, func(x string) int {
i, _ := strconv.Atoi(x)
return i
}) π float(2)
func AvgN ΒΆ
func AvgN[T constraints.Number](inputs ...T) float64
AvgN returns the average value of the items
EXAMPLE:
xslice.AvgN(1, 2, 3) π float(2) xslice.AvgN() π float(0)
func Chunk ΒΆ
Chunk returns a new slice with the elements in the slice chunked into smaller slices of the specified size.
EXAMPLE:
xslice.Chunk([]int{1, 2, 3, 4, 5}, 2) π [[1, 2], [3, 4], [5]]
xslice.Chunk([]int{1, 2, 3, 4, 5}, 10) π [[1, 2, 3, 4, 5]]
xslice.Chunk([]int{1, 2, 3, 4, 5}, 0) π []int{}
func ChunkInPlace ΒΆ
ChunkInPlace returns a new slice with the elements in the slice chunked into smaller slices of the specified size. This function will not copy the elements, has no extra costs. EXAMPLE:
xslice.Chunk([]int{1, 2, 3, 4, 5}, 2) π [[1, 2], [3, 4], [5]]
xslice.Chunk([]int{1, 2, 3, 4, 5}, 10) π [[1, 2, 3, 4, 5]]
xslice.Chunk([]int{1, 2, 3, 4, 5}, 0) π []int{}
func Clone ΒΆ
func Clone[T any](in []T) []T
Clone returns a copy of the slice.
EXAMPLE:
xslice.Clone([]int{1, 2, 3}) π [1, 2, 3]
func CloneBy ΒΆ
CloneBy returns a copy of the slice with the results of applying the given function to every element in this slice.
EXAMPLE:
xslice.CloneBy([]int{1, 2, 3}, func(x int) int { return x * 2 }) π [2, 4, 6]
xslice.CloneBy([]int{1, 2, 3}, strconv.Itoa) π ["1", "2", "3"]
func Compact ΒΆ added in v0.0.5
func Compact[T comparable, Slice ~[]T](in Slice) Slice
Compact returns a new slice with the zero elements removed.
EXAMPLE:
xslice.Compact([]int{0, 1, 2, 3, 4}) π [1 2 3 4]
func Concat ΒΆ
func Concat[T any](vs ...[]T) []T
Concat concatenates the slices.
EXAMPLE:
xslice.Concat([]int{1, 2, 3}, []int{4, 5, 6}) π [1, 2, 3, 4, 5, 6]
xslice.Concat([]int{1, 2, 3}, []int{}) π [1, 2, 3]
func Contains ΒΆ
func Contains[T comparable](in []T, v T) bool
Contains returns true if the slice contains the value v.
EXAMPLE:
xslice.Contains([]int{1, 2, 3}, 1) π true
xslice.Contains([]int{-1, 2, 3}, 1) π false
func ContainsAll ΒΆ
func ContainsAll[T comparable](in []T, v []T) bool
ContainsAll returns true if the slice contains all values in v.
EXAMPLE:
xslice.ContainsAll([]string{"1", "2", "3"}, []string{"1", "2", "3"}) π true
xslice.ContainsAll([]string{"1", "2", "3"}, []string{"1", "99", "1000"}) π false
xslice.ContainsAll([]string{"1", "2", "3"}, []string{}) π true
func ContainsAny ΒΆ
func ContainsAny[T comparable](in []T, v []T) bool
ContainsAny returns true if the slice contains any value in v.
EXAMPLE:
xslice.ContainsAny([]string{"1", "2", "3"}, []string{"1", "99", "1000"}) π true
xslice.ContainsAny([]string{"1", "2", "3"}, []string{"-1"}) π false
xslice.ContainsAny([]string{"1", "2", "3"}, []string{}) π false
func ContainsBy ΒΆ
ContainsBy returns true if the slice contains the value v evaluated by f.
EXAMPLE:
xslice.ContainsBy([]string{"1", "2", "3"}, func(x string) bool {
i, _ := strconv.Atoi(x)
return i == 1
}) π true
xslice.ContainsBy([]string{"1", "2", "3"}, func(x string) bool {
i, _ := strconv.Atoi(x)
return i == -1
}) π false
func Count ΒΆ
Count returns the number of items in the slice.
EXAMPLE:
xslice.Count([]int{1, 2, 3}) π 3
xslice.Count([]int{}) π 0
func Difference ΒΆ added in v0.0.5
func Difference[T comparable, Slice ~[]T](left, right Slice) (onlyLeft, onlyRight Slice)
Difference returns two slices: the first slice contains the elements that are in the left slice but not in the right slice, and the second slice contains the elements that are in the right slice but not in the left slice.
EXAMPLE:
left := []int{1, 2, 3, 4, 5}
right := []int{4, 5, 6, 7, 8}
onlyLeft, onlyRight := xslice.Difference(left, right)
fmt.Println(onlyLeft) // [1 2 3]
fmt.Println(onlyRight) // [6 7 8]
func Filter ΒΆ added in v0.0.5
Filter returns a new slice with the elements that satisfy the given function f.
EXAMPLE:
xslice.Filter([]int{1, 2, 3, 2, 4}, func(x int) bool { return x%2 == 0 }) π [2 4]
func Find ΒΆ
Find returns the first item in the slice that satisfies the condition provided by f.
EXAMPLE:
xslice.Find([]int{1, 2, 3}, func(x int) bool { return x == 1 }) π 1, true
xslice.Find([]int{1, 2, 3}, func(x int) bool { return x == -1 }) π 0, false
func FindO ΒΆ
FindO returns the first item in the slice that satisfies the condition provided by f.
EXAMPLE:
xslice.FindO(_range(0, 10), func(x int) bool { return x == 1 }).Must() π 1
xslice.FindO(_range(0, 10), func(x int) bool { return x == -1 }).Ok() π false
func First ΒΆ added in v0.0.5
First returns the first element in the slice. If the slice is empty, the zero value of T is returned. EXAMPLE:
xslice.First([]int{1, 2, 3}) π 1
xslice.First([]int{}) π 0
func FirstO ΒΆ added in v0.0.5
FirstO returns the first element in the slice as an optional.O[T]. If the slice is empty, the zero value of T is returned. EXAMPLE:
xslice.FirstO([]int{1, 2, 3}) π 1
xslice.FirstO([]int{}) π 0
func ForEach ΒΆ
ForEach iterates over each item in the slice, stop if f returns false.
EXAMPLE:
ForEach([]int{1, 2, 3}, func(x int) bool {
fmt.Println(x)
return true
}
Output:
1
2
3
func ForEachIdx ΒΆ
ForEachIdx iterates over each item in the slice, stop if f returns false.
EXAMPLE:
ForEach([]int{1, 2, 3}, func(idx, x int) bool {
fmt.Println(idx, x)
return true
}
Output:
0 1
1 2
2 3
func GroupBy ΒΆ added in v0.0.3
func GroupBy[T any, K comparable, Slice ~[]T](in Slice, f func(T) K) map[K]Slice
GroupBy returns a map of the slice elements grouped by the given function f.
EXAMPLE:
xslice.GroupBy([]int{1, 2, 3, 2, 4}, func(x int) int { return x % 2 }) π map[0:[2 4] 1:[1 3]]
func GroupByMap ΒΆ added in v0.0.3
func GroupByMap[T any, Slice ~[]T, K comparable, V any](in Slice, f func(T) (K, V)) map[K][]V
GroupByMap returns a map of the slice elements grouped by the given function f.
EXAMPLE:
xslice.GroupByMap([]int{1, 2, 3, 2, 4}, func(x int) (int, int) { return x % 2, x }) π map[0:[2 4] 1:[1 3]]
func Head ΒΆ
Head returns the first item in the slice.
EXAMPLE:
optional.FromValue2(xslice.Head(_range(0, 10))).Must() π 0 optional.FromValue2(xslice.Head(_range(0, 0))).Ok() π false
func HeadO ΒΆ
HeadO returns the first item in the slice.
EXAMPLE:
xslice.HeadO(_range(0, 10)).Must() π 0 xslice.HeadO(_range(0, 0)).Ok() π false
func Index ΒΆ
func Index[T comparable, Slice ~[]T](in Slice, v T) int
Index returns the index of the first element in the slice that is equal to v. If no such element is found, -1 is returned. EXAMPLE:
xslice.Index([]int{1, 2, 3, 4, 5}, 1) π 0
xslice.Index([]int{1, 2, 3, 4, 5}, 3) π 2
xslice.Index([]int{1, 2, 3, 4, 5}, 666) π -1
func Intersect ΒΆ added in v0.0.5
func Intersect[T comparable, Slice ~[]T](left, right Slice) Slice
Intersect returns a slice that contains the elements that are in both left and right slices.
EXAMPLE:
left := []int{1, 2, 3, 4, 5}
right := []int{4, 5, 6, 7, 8}
intersect := xslice.Intersect(left, right)
fmt.Println(intersect) // [4 5]
func Join ΒΆ
func Join[T ~string](in []T, sep T) T
Join joins the slice with sep.
EXAMPLE:
xslice.Join([]string{"1", "2", "3"}, ".") π "1.2.3"
xslice.Join([]string{}, ".") π ""
func Last ΒΆ added in v0.0.5
Last returns the last element in the slice. If the slice is empty, the zero value of T is returned. EXAMPLE:
xslice.Last([]int{1, 2, 3}) π 3
xslice.Last([]int{}) π 0
func LastO ΒΆ added in v0.0.5
LastO returns the last element in the slice as an optional.O[T]. If the slice is empty, the zero value of T is returned. EXAMPLE:
xslice.LastO([]int{1, 2, 3}) π 3
xslice.LastO([]int{}) π 0
func Map ΒΆ
Map returns a new slice with the results of applying the given function to every element in this slice.
EXAMPLE:
xslice.Map([]int{1, 2, 3}, func(x int) int { return x * 2 }) π [2, 4, 6]
xslice.Map([]int{1, 2, 3}, strconv.Itoa) π ["1", "2", "3"]
func Max ΒΆ
func Max[T constraints.Ordered](in []T) optional.O[T]
Max returns the maximum value in the slice.
EXAMPLE:
xslice.Max([]int{1, 2, 3}) π 3
xslice.Max([]int{}) π 0
func MaxBy ΒΆ
func MaxBy[T constraints.Ordered](in []T, f func(T, T) bool) optional.O[T]
MaxBy returns the maximum value evaluated by f in the slice.
EXAMPLE:
xslice.MaxBy([]int{1, 2, 3} /*less = */, func(a, b int) bool { return a > b }).Must() π 1
func MaxN ΒΆ
func MaxN[T constraints.Ordered](in ...T) optional.O[T]
MaxN returns the maximum value in the slice.
EXAMPLE:
xslice.MaxN(1, 2, 3) π 3
func Min ΒΆ
func Min[T constraints.Ordered](in []T) optional.O[T]
Min returns the minimum value in the slice.
EXAMPLE:
xslice.Min([]int{1, 2, 3}) π 1
xslice.Min([]int{}) π 0
func MinBy ΒΆ
func MinBy[T constraints.Ordered](in []T, f func(T, T) bool) optional.O[T]
MinBy returns the minimum value evaluated by f in the slice.
EXAMPLE:
xslice.MinBy([]int{3, 2, 1} /*less = */, func(a, b int) bool { return a > b }).Must() π 3
func MinN ΒΆ
func MinN[T constraints.Ordered](in ...T) optional.O[T]
MinN returns the minimum value in the slice.
EXAMPLE:
xslice.MinN(1, 2, 3) π 1
func Repeat ΒΆ
Repeat returns a new slice with the elements repeated 'count' times.
EXAMPLE:
xslice.Repeat([]int{1, 2, 3}, 3) π [1, 2, 3, 1, 2, 3, 1, 2, 3]
xslice.Repeat([]int{1, 2, 3}, 0) π []int{}
func RepeatBy ΒΆ
RepeatBy returns a new slice with the elements return by f repeated 'count' times.
EXAMPLE:
xslice.RepeatBy(3, func(i int) int { return i }) π [0, 1, 2]
xslice.RepeatBy(3, func(i int) string { return strconv.Itoa(i) }) π []string{"1", "2", "3"}
func Replace ΒΆ
func Replace[T comparable, Slice ~[]T](in Slice, from, to T, count int) []T
Replace replaces the count elements in the slice from 'from' to 'to'.
EXAMPLE:
xslice.Replace([]int{1, 2, 3}, 2, 4, 1) π [1, 4, 3]
xslice.Replace([]int{1, 2, 2}, 2, 4, -1) π [1, 4, 4]
func ReplaceAll ΒΆ
func ReplaceAll[T comparable, Slice ~[]T](in Slice, from, to T) []T
ReplaceAll replaces all elements in the slice from 'from' to 'to'.
EXAMPLE:
xslice.ReplaceAll([]int{1, 2, 3}, 2, 4) π [1, 4, 3]
xslice.ReplaceAll([]int{1, 2, 2}, 2, 4) π [1, 4, 4]
func Reverse ΒΆ
func Reverse[T any, Slice ~[]T](in Slice)
Reverse reverses the slice.
EXAMPLE:
xslice.Reverse([]int{1, 2, 3}) π [3, 2, 1]
xslice.Reverse([]int{}) π []int{}
func ReverseClone ΒΆ
func ReverseClone[T any, Slice ~[]T](in Slice) Slice
ReverseClone reverses the slice.
EXAMPLE:
xslice.ReverseClone([]int{1, 2, 3}) π [3, 2, 1]
xslice.ReverseClone([]int{}) π []int{}
xslice.ReverseClone([]int{3, 2, 1}) π [1, 2, 3]
func Shuffle ΒΆ
func Shuffle[T any, Slice ~[]T](in Slice) Slice
Shuffle shuffles the slice.
EXAMPLE:
xslice.Shuffle([]int{1, 2, 3}) π [2, 1, 3] (random)
xslice.Shuffle([]int{}) π []int{}
func ShuffleInPlace ΒΆ
func ShuffleInPlace[T any, Slice ~[]T](in Slice)
ShuffleInPlace shuffles the slice.
EXAMPLE:
array := []int{1, 2, 3}
xslice.ShuffleInPlace(array) π [2, 1, 3] (random)
func Subset ΒΆ
Subset returns a subset slice from the slice. if start < -1 means that we take subset from right-to-left
EXAMPLE:
xslice.Subset([]int{1, 2, 3}, 0, 2) π [1, 2]
xslice.Subset([]int{1, 2, 3}, -1, 2) π [2, 3]
func SubsetInPlace ΒΆ
SubsetInPlace returns a subset slice copied from the slice. if start < -1 means that we take subset from right-to-left EXAMPLE:
xslice.SubsetInPlace([]int{1, 2, 3}, 0, 2) π [1, 2]
xslice.SubsetInPlace([]int{1, 2, 3}, -1, 2) π [2, 3]
func Sum ΒΆ
func Sum[T constraints.Number, Slice ~[]T](in Slice) T
Sum returns the sum of all elements in the slice.
EXAMPLE:
xslice.Sum([]int{1, 2, 3}) π 6
xslice.Sum([]int{}) π 0
func SumBy ΒΆ
func SumBy[T any, R constraints.Number, Slice ~[]T](in Slice, f func(T) R) R
SumBy returns the sum of all elements in the slice after applying the given function f to each element.
EXAMPLE:
xslice.SumBy([]string{"1", "2", "3"}, func(x string) int {
i, _ := strconv.Atoi(x)
return i
}) π 6
xslice.SumBy([]string{}, func(x string) int { return 0 }) π 0
func SumN ΒΆ
func SumN[T constraints.Number](in ...T) T
SumN returns the sum of all input arguments.
EXAMPLE:
xslice.SumN(1, 2, 3) π 6 xslice.SumN() π 0
func Union ΒΆ added in v0.0.5
func Union[T comparable, Slice ~[]T](left, right Slice) Slice
Union returns a slice that contains all elements in left and right slices.
EXAMPLE:
left := []int{1, 2, 3, 4}
right := []int{3, 4, 5, 6}
union := xslice.Union(left, right)
fmt.Println(union) // [1 2 3 4 5 6]
func Uniq ΒΆ added in v0.0.3
func Uniq[T comparable, Slice ~[]T](in Slice) Slice
Uniq returns a new slice with the duplicate elements removed.
EXAMPLE:
xslice.Uniq([]int{1, 2, 3, 2, 4}) π [1, 2, 3, 4]
Types ΒΆ
This section is empty.