diff --git a/docs/slice.md b/docs/slice.md index 9695fd8..ad81702 100644 --- a/docs/slice.md +++ b/docs/slice.md @@ -43,7 +43,6 @@ import ( - [Flatten](#Flatten) - [FlattenDeep](#FlattenDeep) - [ForEach](#ForEach) - - [GroupBy](#GroupBy) - [GroupWith](#GroupWith) - [IntSlice](#IntSlice) @@ -53,10 +52,12 @@ import ( - [IndexOf](#IndexOf) - [LastIndexOf](#LastIndexOf) - [Map](#Map) +- [Merge](#Merge) - [Reverse](#Reverse) - [Reduce](#Reduce) - [Replace](#Replace) - [ReplaceAll](#ReplaceAll) +- [Repeat](#Repeat) - [Shuffle](#Shuffle) - [SortByField](#SortByField) - [Some](#Some) @@ -909,6 +910,36 @@ func main() { } ``` + +### Merge + +
Merge all given slices into one slice.
+ +Signature: + +```go +func Merge[T any](slices ...[]T) []T +``` + +Example: + +```go +import ( + "fmt" + "github.com/duke-git/lancet/v2/slice" +) + +func main() { + s1 := []int{1, 2, 3} + s2 := []int{2, 4} + res := slice.Merge(s1, s2) + + fmt.Println(res) //[]int{1, 2, 3, 2, 4} +} +``` + + + ### ReverseReverse the elements order in slice.
@@ -1018,6 +1049,31 @@ func main() { } ``` + +### Repeat + +Creates a slice with length n whose elements are passed param item.
+ +Signature: + +```go +func Repeat[T any](item T, n int) []T +``` + +Example: + +```go +import ( + "fmt" + "github.com/duke-git/lancet/v2/slice" +) + +func main() { + fmt.Println(slice.Repeat("a", 3)) //[]string{"a", "a", "a"} +} +``` + + ### ShuffleCreates an slice of shuffled values.
diff --git a/docs/slice_zh-CN.md b/docs/slice_zh-CN.md index 379b792..7865b40 100644 --- a/docs/slice_zh-CN.md +++ b/docs/slice_zh-CN.md @@ -54,10 +54,12 @@ import ( - [IndexOf](#IndexOf) - [LastIndexOf](#LastIndexOf) - [Map](#Map) +- [Merge](#Merge) - [Reverse](#Reverse) - [Reduce](#Reduce) - [Replace](#Replace) - [ReplaceAll](#ReplaceAll) +- [Repeat](#Repeat) - [Shuffle](#Shuffle) - [SortByField](#SortByField) - [Some](#Some) @@ -885,7 +887,7 @@ func main() { ### Map -通过运行函数slice中的每个元素来创建一个新切片
+对slice中的每个元素执行map函数以创建一个新切片
函数签名: @@ -911,6 +913,34 @@ func main() { } ``` +### Merge + +合并多个切片(不会消除重复元素).
+ +函数签名: + +```go +func Merge[T any](slices ...[]T) []T +``` + +例子: + +```go +import ( + "fmt" + "github.com/duke-git/lancet/v2/slice" +) + +func main() { + s1 := []int{1, 2, 3} + s2 := []int{2, 4} + res := slice.Merge(s1, s2) + + fmt.Println(res) //[]int{1, 2, 3, 2, 4} +} +``` + + ### Reverse反转切片中的元素顺序
@@ -1020,6 +1050,30 @@ func main() { } ``` +### Repeat + +创建一个切片,包含n个传入的item
+ +函数签名: + +```go +func Repeat[T any](item T, n int) []T +``` + +例子: + +```go +import ( + "fmt" + "github.com/duke-git/lancet/v2/slice" +) + +func main() { + fmt.Println(slice.Repeat("a", 3)) //[]string{"a", "a", "a"} +} +``` + + ### Shuffle随机打乱切片中的元素顺序