diff --git a/each.go b/each.go new file mode 100644 index 0000000..29ea020 --- /dev/null +++ b/each.go @@ -0,0 +1,7 @@ +package underscore + +func Each[T any](values []T, predicate func(T)) { + for _, v := range values { + predicate(v) + } +} diff --git a/each_test.go b/each_test.go new file mode 100644 index 0000000..1f4da32 --- /dev/null +++ b/each_test.go @@ -0,0 +1,22 @@ +package underscore_test + +import ( + "fmt" + "testing" + + "github.com/rjNemo/underscore" + + "github.com/stretchr/testify/assert" +) + +func TestEach(t *testing.T) { + names := []string{"Alice", "Bob", "Charles"} + want := []string{"Hi Alice", "Hi Bob", "Hi Charles"} + + res := make([]string, 0) + underscore.Each(names, func(n string) { + res = append(res, fmt.Sprintf("Hi %s", n)) + }) + + assert.Equal(t, want, res) +}