Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Maybe ForEach can modify elements is a good idea, I don't know. But some real scene need this feature.
Someone prefers
results := []int{}
funk.ForEach([]int{1,2,3}, func(x int){ results = append(results, x * 2})
resultsAnother := []int{}
funk.ForEach(results, func(x int){ resultsAnother = append(resultsAnother, x * 3})
but someone prefers
data := []int{1,2,3}
funk.ForEach(data, func(x *int){ *x = *x * 2})
funk.ForEach(data, func(x *int){ *x = *x * 3})
go's map cannot be modified by the reflect value. reflect#Value#MapIndex#CanSet is false. Use SetMapIndex is a way, but it need a
func(x *any) any
as predicate func breaks go-funk's consensual, so I left it.