For the complete documentation index, see llms.txt. This page is also available as Markdown.

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