1
0
mirror of https://github.com/duke-git/lancet.git synced 2026-02-08 06:32:28 +08:00

docs: add GroupWith doc

This commit is contained in:
dudaodong
2022-03-21 20:10:39 +08:00
parent 50ef63e27d
commit 41613061d5
2 changed files with 57 additions and 1 deletions

View File

@@ -37,8 +37,9 @@ import (
- [FindLast](#FindLast)
- [FlattenDeep](#FlattenDeep)
- [ForEach](#ForEach)
- [GroupBy](#GroupBy)
- [GroupWith](#GroupWith)
- [IntSlice](#IntSlice)
- [InterfaceSlice](#InterfaceSlice)
- [Intersection](#Intersection)
@@ -564,6 +565,34 @@ func main() {
### <span id="GroupWith">GroupWith</span>
<p>Return a map composed of keys generated from the results of running each element of slice thru iteratee.</p>
<b>Signature:</b>
```go
func GroupWith[T any, U comparable](slice []T, iteratee func(T) U) map[U][]T
```
<b>Example:</b>
```go
import (
"fmt"
"github.com/duke-git/lancet/v2/slice"
)
func main() {
nums := []float64{6.1, 4.2, 6.3}
floor := func(num float64) float64 {
return math.Floor(num)
}
res := slice.GroupWith(nums, floor)
fmt.Println(res) //map[float64][]float64{ 4: {4.2}, 6: {6.1, 6.3},}
}
```
### <span id="IntSlice">IntSlice</span>
<p>Convert interface slice to int slice.</p>

View File

@@ -39,6 +39,7 @@ import (
- [ForEach](#ForEach)
- [GroupBy](#GroupBy)
- [GroupWith](#GroupWith)
- [IntSlice](#IntSlice)
- [InterfaceSlice](#InterfaceSlice)
- [Intersection](#Intersection)
@@ -565,6 +566,32 @@ func main() {
### <span id="GroupWith">GroupWith</span>
<p>创建一个mapkey是iteratee遍历slice中的每个元素返回的结果。 分组值的顺序是由他们出现在slice中的顺序确定的。每个键对应的值负责生成key的元素组成的数组。iteratee调用1个参数 (value)</p>
<b>函数签名:</b>
```go
func GroupWith[T any, U comparable](slice []T, iteratee func(T) U) map[U][]T
```
<b>例子:</b>
```go
import (
"fmt"
"github.com/duke-git/lancet/v2/slice"
)
func main() {
nums := []float64{6.1, 4.2, 6.3}
floor := func(num float64) float64 {
return math.Floor(num)
}
res := slice.GroupWith(nums, floor)
fmt.Println(res) //map[float64][]float64{ 4: {4.2}, 6: {6.1, 6.3},}
}
```
### <span id="IntSlice">IntSlice</span>
<p>将接口切片转换为int切片</p>