From 31e43ec356c421647ebfd8589e131fc086017f7a Mon Sep 17 00:00:00 2001 From: dudaodong Date: Wed, 22 Jun 2022 16:08:37 +0800 Subject: [PATCH] docs: add doc for UniqueBy function --- README.md | 1 + README_zh-CN.md | 1 + docs/slice.md | 29 ++++++++++++++++++++++++++++- docs/slice_zh-CN.md | 29 ++++++++++++++++++++++++++++- 4 files changed, 58 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 23d9e60..553b844 100644 --- a/README.md +++ b/README.md @@ -396,6 +396,7 @@ import "github.com/duke-git/lancet/v2/slice" - [StringSlice](https://github.com/duke-git/lancet/blob/main/docs/slice.md#StringSlice) - [SymmetricDifference](https://github.com/duke-git/lancet/blob/main/docs/slice.md#SymmetricDifference) - [Unique](https://github.com/duke-git/lancet/blob/main/docs/slice.md#Unique) +- [UniqueBy](https://github.com/duke-git/lancet/blob/main/docs/slice.md#UniqueBy) - [Union](https://github.com/duke-git/lancet/blob/main/docs/slice.md#Union) - [UpdateAt](https://github.com/duke-git/lancet/blob/main/docs/slice.md#UpdateAt) - [Without](https://github.com/duke-git/lancet/blob/main/docs/slice.md#Without) diff --git a/README_zh-CN.md b/README_zh-CN.md index b18efa3..8f428f7 100644 --- a/README_zh-CN.md +++ b/README_zh-CN.md @@ -391,6 +391,7 @@ import "github.com/duke-git/lancet/v2/slice" - [StringSlice](https://github.com/duke-git/lancet/blob/main/docs/slice_zh-CN.md#StringSlice) - [SymmetricDifference](https://github.com/duke-git/lancet/blob/main/docs/slice_zh-CN.md#SymmetricDifference) - [Unique](https://github.com/duke-git/lancet/blob/main/docs/slice_zh-CN.md#Unique) +- [UniqueBy](https://github.com/duke-git/lancet/blob/main/docs/slice_zh-CN.md#UniqueBy) - [Union](https://github.com/duke-git/lancet/blob/main/docs/slice_zh-CN.md#Union) - [UpdateAt](https://github.com/duke-git/lancet/blob/main/docs/slice_zh-CN.md#UpdateAt) - [Without](https://github.com/duke-git/lancet/blob/main/docs/slice_zh-CN.md#Without) diff --git a/docs/slice.md b/docs/slice.md index fdbef94..cdc98ff 100644 --- a/docs/slice.md +++ b/docs/slice.md @@ -57,6 +57,7 @@ import ( - [StringSlice](#StringSlice) - [SymmetricDifference](#SymmetricDifference) - [Unique](#Unique) +- [UniqueBy](#UniqueBy) - [Union](#Union) - [UpdateAt](#UpdateAt) - [Without](#Without) @@ -1086,7 +1087,33 @@ func main() { -### Unique +### UniqueBy +

Call iteratee func with every item of slice, then remove duplicated.

+ +Signature: + +```go +func UniqueBy[T any](slice []T, iteratee func(item T) T) []T +``` +Example: + +```go +import ( + "fmt" + "github.com/duke-git/lancet/slice" +) + +func main() { + res := slice.UniqueBy([]int{1, 2, 3, 4, 5, 6}, func(val int) int { + return val % 4 + }) + fmt.Println(res) //[]int{1, 2, 3, 0} +} +``` + + + +### Union

Creates a slice of unique values, in order, from all given slices. using == for equality comparisons.

Signature: diff --git a/docs/slice_zh-CN.md b/docs/slice_zh-CN.md index 2fa7846..699212f 100644 --- a/docs/slice_zh-CN.md +++ b/docs/slice_zh-CN.md @@ -57,6 +57,7 @@ import ( - [StringSlice](#StringSlice) - [SymmetricDifference](#SymmetricDifference) - [Unique](#Unique) +- [UniqueBy](#UniqueBy) - [Union](#Union) - [UpdateAt](#UpdateAt) - [Without](#Without) @@ -1085,7 +1086,33 @@ func main() { -### Unique +### UniqueBy +

对切片的每个元素调用iteratee函数,然后删除重复元素

+ +函数签名: + +```go +func UniqueBy[T any](slice []T, iteratee func(item T) T) []T +``` +例子: + +```go +import ( + "fmt" + "github.com/duke-git/lancet/slice" +) + +func main() { + res := slice.UniqueBy([]int{1, 2, 3, 4, 5, 6}, func(val int) int { + return val % 4 + }) + fmt.Println(res) //[]int{1, 2, 3, 0} +} +``` + + + +### Union

从所有给定的切片按顺序创建一个唯一值切片,使用==进行相等比较

函数签名: