~/Projects/sing
git clone https://code.lsong.org/sing
Commit
- Commit
- 2469ae4c9ac80a399ec46a0cc633e94e3527e8a3
- Author
- 世界 <[email protected]>
- Date
- 2022-07-29 19:48:34 +0800 +0800
- Diffstat
common/cond.go | 16 ++++++++++++++++
Add flatMap
diff --git a/common/cond.go b/common/cond.go index bf59929fff497af1eee0549cee6b922ddc480e05..78cd0cee43357ef5dfc912a1a25e8daab4027dfc 100644 --- a/common/cond.go +++ b/common/cond.go @@ -71,6 +71,22 @@ } return retArr } +func FlatMap[T any, N any](arr []T, block func(it T) []N) []N { + var retAddr []N + for _, item := range arr { + retAddr = append(retAddr, block(item)...) + } + return retAddr +} + +func FlatMapIndexed[T any, N any](arr []T, block func(index int, it T) []N) []N { + var retAddr []N + for i, item := range arr { + retAddr = append(retAddr, block(i, item)...) + } + return retAddr +} + func Filter[T any](arr []T, block func(it T) bool) []T { var retArr []T for _, it := range arr {