Slices

The Slices registry provides utilities for working with slice data structures, including functions for filtering, sorting, and transforming slices in a flexible manner.

You can easily import all the functions from the slices registry by including the following import statement in your code

import "github.com/go-sprout/sprout/registry/slices"

list

The function creates a list from the provided elements, collecting them into a single array-like structure.

Signature

{{ list 1 2 3 }} // Output: [1 2 3]

append

The function adds an element to the end of an existing list, extending the list by one item.

Signature

{{ list "a" "b" | append "c"  }} // Output: [a b c]
{{ nil | append "c"  }} // Error

prepend

The function adds an element to the beginning of an existing list, placing the new item before all others.

Signature

{{ list "b" "c" | prepend "a" }} // Output: [a b c]
{{ nil | prepend "c" }} // Error

concat

The function merges multiple lists into a single, unified list, combining all elements from the provided lists.

Signature

chunk

The function divides a list into smaller, equally sized chunks based on the specified size, breaking the original list into manageable sub-lists.

Signature

uniq

The function removes duplicate elements from a list, ensuring that each element appears only once in the resulting list.

Signature

compact

The function removes nil and zero-value elements from a list, leaving only non-empty and meaningful values.

Signature

flatten

The function flattens a list into a single-dimensional array, removing nested lists and combining all elements into a single list.

Signature

flattenDepth

The function flattens a list into a single-dimensional array up to a specified depth, removing nested lists and combining all elements into a single list up to the specified depth.

Signature

slice

The function extracts a portion of a list, creating a new slice based on the specified start and end indices.

Signature

has

The function checks if a specified element is present within a collection, returning true if the element is found.

Signature

without

The function returns a new list that excludes the specified elements, effectively filtering out unwanted items from the original list.

Signature

rest

The function returns all elements of a list except for the first one, effectively giving you the "rest" of the list.

Signature

initial

The function returns all elements of a list except the last one, effectively providing the "initial" portion of the list.

Signature

first

The function returns the first element of a list.

Signature

last

The function returns the last element of a list.

Signature

reverse

The function returns a new list with the elements in reverse order, flipping the sequence of the original list.

Signature

sortAlpha

The function sorts a list of strings in alphabetical order.

Signature

splitList

The function splits a string into a slice of substrings based on the specified separator.

Signature

strSlice

The function converts a given value into a slice of strings, handling various input types including []string, []any, and other slice types, ensuring flexible type conversion to a string slice.

Signature

until

The function generates a slice of integers starting from 0 up to, but not including, the specified count. If count is negative, it produces a descending slice from 0 down to count, inclusive, stepping by -1. The function utilizes UntilStep to dynamically determine the range and step size.

Signature

untilStep

The function generates a slice of integers from start to stop (exclusive), incrementing by the specified step. If step is positive, the sequence ascends; if negative, it descends. The function returns an empty slice if the sequence is logically invalid, such as when a positive step is used but start is greater than stop, or vice versa.

Signature

Last updated