mirror of
https://github.com/samber/lo.git
synced 2025-09-26 20:11:13 +08:00
ValuesF helper renamed to PickByKeys
This commit is contained in:
2
.gitignore
vendored
2
.gitignore
vendored
@@ -34,3 +34,5 @@ go.work
|
|||||||
cover.out
|
cover.out
|
||||||
cover.html
|
cover.html
|
||||||
.vscode
|
.vscode
|
||||||
|
|
||||||
|
.idea/
|
||||||
|
@@ -540,12 +540,12 @@ values := lo.Values[string, int](map[string]int{"foo": 1, "bar": 2})
|
|||||||
// []int{1, 2}
|
// []int{1, 2}
|
||||||
```
|
```
|
||||||
|
|
||||||
### ValuesF
|
### PickByKeys
|
||||||
|
|
||||||
same as Values, but additionally filters map elements by provided keys.
|
same as Values, but additionally filters map elements by provided keys.
|
||||||
|
|
||||||
```go
|
```go
|
||||||
valuesF := ValuesF[string, int](map[string]int{"foo": 1, "bar": 2, "baz": 3}, []string{"foo", "baz"})
|
pickByKeys := lo.PickByKeys[string, int](map[string]int{"foo": 1, "bar": 2, "baz": 3}, []string{"foo", "baz"})
|
||||||
// []int{1, 3}
|
// []int{1, 3}
|
||||||
```
|
```
|
||||||
|
|
||||||
|
4
map.go
4
map.go
@@ -22,8 +22,8 @@ func Values[K comparable, V any](in map[K]V) []V {
|
|||||||
return result
|
return result
|
||||||
}
|
}
|
||||||
|
|
||||||
// ValuesF same as Values, but additionally filters map elements by provided keys.
|
// PickByKeys same as Values, but additionally filters map elements by provided keys.
|
||||||
func ValuesF[K comparable, V any](in map[K]V, keys []K) []V {
|
func PickByKeys[K comparable, V any](in map[K]V, keys []K) []V {
|
||||||
r := make([]V, 0, len(in))
|
r := make([]V, 0, len(in))
|
||||||
for k, v := range in {
|
for k, v := range in {
|
||||||
if Contains(keys, k) {
|
if Contains(keys, k) {
|
||||||
|
@@ -26,10 +26,10 @@ func TestValues(t *testing.T) {
|
|||||||
is.Equal(r1, []int{1, 2})
|
is.Equal(r1, []int{1, 2})
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestValuesF(t *testing.T) {
|
func TestPickByKeys(t *testing.T) {
|
||||||
is := assert.New(t)
|
is := assert.New(t)
|
||||||
|
|
||||||
r1 := ValuesF[string, int](map[string]int{"foo": 1, "bar": 2, "baz": 3}, []string{"foo", "baz"})
|
r1 := PickByKeys[string, int](map[string]int{"foo": 1, "bar": 2, "baz": 3}, []string{"foo", "baz"})
|
||||||
sort.Ints(r1)
|
sort.Ints(r1)
|
||||||
|
|
||||||
is.Equal(r1, []int{1, 3})
|
is.Equal(r1, []int{1, 3})
|
||||||
|
Reference in New Issue
Block a user