Documentation ¶
Index ¶
- func Flatten(target *[]any, source any, depth int)
- type Array
- func (self *Array[T]) Any(fn func(item T) bool) bool
- func (self *Array[T]) Contains(item T) bool
- func (self *Array[T]) Count() int
- func (self *Array[T]) Distinct(fn func(item T) string) *Array[T]
- func (self *Array[T]) Filter(fn func(item T) bool) *Array[T]
- func (self *Array[T]) Find(index int) (T, error)
- func (self *Array[T]) Flat(depth int) *Array[any]
- func (self *Array[T]) FlatMap(fn func(item T) any, depth int) *Array[any]
- func (self *Array[T]) ForEach(fn func(item T, index int)) *Array[T]
- func (self *Array[T]) Map(fn func(T) any) *Array[any]
- func (self *Array[T]) Parallel(fn func(item T)) *Array[T]
- func (self *Array[T]) Reduce(initial T, fn func(acc T, cur T) T) T
- func (self *Array[T]) Slice() []T
- func (self *Array[T]) SortBy(less func(i, j T) bool) *Array[T]
- func (self *Array[T]) Take(start int, count int) *Array[T]
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
Types ¶
type Array ¶
type Array[T any] struct { // contains filtered or unexported fields }
Array struct
array wrap struct which can help call a serial of useful functions
arr := []int{3, 4, 2} ret := From(arr).Map(...).Filter(...).ForEach(...)
func (*Array[T]) Distinct ¶ added in v0.0.3
distinct the array by the key fn
arr := []int{3, 4, 2, 5, 2, 3} count := From(arr).Distinct(func(item int) string { return fmt.Sprint(item) })
func (*Array[T]) Filter ¶
filter the array by fn condition
arr := []int{3, 4, 2} ret := From(arr).Filter(func(i int) bool { return i > 3 }) fmt.Println(ret)
func (*Array[T]) Flat ¶ added in v0.0.3
flat a array
arr := [][]int{{3}, {4}, {3, 5}} newArr := From(arr).Flat(1).Slice() for i, v := range newArr { fmt.Println(i, v) }
func (*Array[T]) FlatMap ¶ added in v0.0.3
map + flat for array
arr := []string{"it's Sunny in", "", "California"} newArr := From(arr).FlatMap(func(item string) any { return strings.Split(item, " ") }, 1).Slice() for i, v := range newArr { fmt.Println(i, v) }
func (*Array[T]) ForEach ¶ added in v0.0.2
for each the array
arr := []int{3, 4, 2} From(arr).ForEach(func(item, _ int) { fmt.Println(item) })
func (*Array[T]) Map ¶
map the array and return the expected struct
arr := []int{3, 4, 2} ret := From(arr).Map(func(i int) any { return tuple{i, i} }) ret = From(arr).Map(func(i int) any { return i * 2 })
func (*Array[T]) Parallel ¶ added in v0.0.3
Parallel to run the item function
arr := []int{3, 4, 2} From(arr).Parallel(func(item int) { fmt.Println("Parallel run", item) })
func (*Array[T]) Reduce ¶ added in v0.0.3
func (self *Array[T]) Reduce(initial T, fn func(acc T, cur T) T) T
Reduce function arr := []int{3, 4, 2} value := From(arr).Reduce(0, func(acc int, cur int) int { return acc + cur })
func (*Array[T]) Slice ¶
func (self *Array[T]) Slice() []T
from Array struct to slice of T
arr := []string{"banana", "apple", "pear"} ret := From(arr).Slice() fmt.Println(reflect.TypeOf(ret))
Click to show internal directories.
Click to hide internal directories.