sliceutil

package
v0.0.66 Latest Latest
Warning

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

Go to latest
Published: Nov 27, 2023 License: MIT Imports: 4 Imported by: 263

README

sliceutil

The package contains various helpers to interact with slices

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Clone added in v0.0.18

func Clone[T comparable](t []T) []T

Clone a slice through built-in copy

func Contains

func Contains[T comparable](inputSlice []T, element T) bool

Contains if a slice contains an element

func ContainsItems

func ContainsItems[T comparable](s1 []T, s2 []T) bool

ContainsItems checks if s1 contains s2

func Dedupe

func Dedupe[T comparable](inputSlice []T) (result []T)

Dedupe removes duplicates from a slice of elements preserving the order

func Diff added in v0.0.4

func Diff[V comparable](s1, s2 []V) (extraS1, extraS2 []V)

Diff calculates the extra elements between two sequences

func ElementsMatch added in v0.0.4

func ElementsMatch[V comparable](s1, s2 []V) bool

ElementsMatch asserts that the specified listA(array, slice...) is equal to specified listB(array, slice...) ignoring the order of the elements. If there are duplicate elements, the number of appearances of each of them in both lists should match.

func Equal added in v0.0.4

func Equal[T comparable](s1, s2 []T) bool

Equal checks if the items of two slices are equal respecting the order

func FirstNonZero added in v0.0.13

func FirstNonZero[T comparable](inputs []T) (T, bool)

FirstNonZero function takes a slice of comparable type inputs, and returns the first non-zero element in the slice along with a boolean value indicating if a non-zero element was found or not.

func IsEmpty added in v0.0.4

func IsEmpty[V comparable](s []V) bool

IsEmpty checks if the slice has length zero

func Merge added in v0.0.4

func Merge[V comparable](ss ...[]V) []V

Merge and dedupe multiple items

func MergeItems added in v0.0.4

func MergeItems[V comparable](items ...V) []V

Merge and dedupe multiple items into a

func PickRandom

func PickRandom[T any](v []T) T

PickRandom item from a slice of elements

func PruneEmptyStrings

func PruneEmptyStrings(v []string) []string

PruneEmptyStrings from the slice

func PruneEqual

func PruneEqual[T comparable](inputSlice []T, equalTo T) (r []T)

PruneEqual removes items from the slice equal to the specified value

func ToInt

func ToInt(s []string) ([]int, error)

ToInt converts a slice of strings to a slice of ints

func VisitRandom added in v0.0.32

func VisitRandom[T comparable](t []T, visit VisitFunc[T])

VisitRandom visits all items in the slice in random order and calls the specified function for each item

func VisitRandomZero added in v0.0.32

func VisitRandomZero[T comparable](t []T, visit VisitFunc[T])

VisitRandomZero visits all items in the slice in random order without allocations and calls the specified function for each item

func VisitSequential added in v0.0.32

func VisitSequential[T comparable](t []T, visit VisitFunc[T])

VisitSequential visits all items in the slice in sequential order and calls the specified function for each item

Types

type VisitFunc added in v0.0.32

type VisitFunc[T comparable] func(index int, item T) error

Jump to

Keyboard shortcuts

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