mirror of
https://github.com/samber/lo.git
synced 2025-09-26 12:01:12 +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.html
|
||||
.vscode
|
||||
|
||||
.idea/
|
||||
|
@@ -540,12 +540,12 @@ values := lo.Values[string, int](map[string]int{"foo": 1, "bar": 2})
|
||||
// []int{1, 2}
|
||||
```
|
||||
|
||||
### ValuesF
|
||||
### PickByKeys
|
||||
|
||||
same as Values, but additionally filters map elements by provided keys.
|
||||
|
||||
```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}
|
||||
```
|
||||
|
||||
|
4
map.go
4
map.go
@@ -22,8 +22,8 @@ func Values[K comparable, V any](in map[K]V) []V {
|
||||
return result
|
||||
}
|
||||
|
||||
// ValuesF same as Values, but additionally filters map elements by provided keys.
|
||||
func ValuesF[K comparable, V any](in map[K]V, keys []K) []V {
|
||||
// PickByKeys same as Values, but additionally filters map elements by provided keys.
|
||||
func PickByKeys[K comparable, V any](in map[K]V, keys []K) []V {
|
||||
r := make([]V, 0, len(in))
|
||||
for k, v := range in {
|
||||
if Contains(keys, k) {
|
||||
|
@@ -26,10 +26,10 @@ func TestValues(t *testing.T) {
|
||||
is.Equal(r1, []int{1, 2})
|
||||
}
|
||||
|
||||
func TestValuesF(t *testing.T) {
|
||||
func TestPickByKeys(t *testing.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)
|
||||
|
||||
is.Equal(r1, []int{1, 3})
|
||||
|
Reference in New Issue
Block a user