56 lines
1.1 KiB
Markdown
56 lines
1.1 KiB
Markdown
|
# String Slice Functions
|
||
|
|
||
|
These function operate on or generate slices of strings. In Go, a slice is a
|
||
|
growable array. In Sprig, it's a special case of a `list`.
|
||
|
|
||
|
## join
|
||
|
|
||
|
Join a list of strings into a single string, with the given separator.
|
||
|
|
||
|
```
|
||
|
list "hello" "world" | join "_"
|
||
|
```
|
||
|
|
||
|
The above will produce `hello_world`
|
||
|
|
||
|
`join` will try to convert non-strings to a string value:
|
||
|
|
||
|
```
|
||
|
list 1 2 3 | join "+"
|
||
|
```
|
||
|
|
||
|
The above will produce `1+2+3`
|
||
|
|
||
|
## splitList and split
|
||
|
|
||
|
Split a string into a list of strings:
|
||
|
|
||
|
```
|
||
|
splitList "$" "foo$bar$baz"
|
||
|
```
|
||
|
|
||
|
The above will return `[foo bar baz]`
|
||
|
|
||
|
The older `split` function splits a string into a `dict`. It is designed to make
|
||
|
it easy to use template dot notation for accessing members:
|
||
|
|
||
|
```
|
||
|
$a := split "$" "foo$bar$baz"
|
||
|
```
|
||
|
|
||
|
The above produces a map with index keys. `{_0: foo, _1: bar, _2: baz}`
|
||
|
|
||
|
```
|
||
|
$a._0
|
||
|
```
|
||
|
|
||
|
The above produces `foo`
|
||
|
|
||
|
## sortAlpha
|
||
|
|
||
|
The `sortAlpha` function sorts a list of strings into alphabetical (lexicographical)
|
||
|
order.
|
||
|
|
||
|
It does _not_ sort in place, but returns a sorted copy of the list, in keeping
|
||
|
with the immutability of lists.
|