From b4e8b7acc8667442a85741c992c754cfd758a445 Mon Sep 17 00:00:00 2001 From: Ruidy Date: Wed, 29 Dec 2021 10:09:51 -0400 Subject: [PATCH] feat: each --- each.go | 7 +++++++ each_test.go | 22 ++++++++++++++++++++++ 2 files changed, 29 insertions(+) create mode 100644 each.go create mode 100644 each_test.go 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) +}