From 1db70c928df2881398eb59f847c204a7f43e18f8 Mon Sep 17 00:00:00 2001 From: xiongjianbo Date: Tue, 4 Jul 2023 17:43:04 +0800 Subject: [PATCH] add Count feature --- slice.go | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/slice.go b/slice.go index 3556040..cd815b9 100644 --- a/slice.go +++ b/slice.go @@ -256,3 +256,18 @@ func Index[T any](list []T, index int) T { } return list[index] } + +// Count example: +// +// count := Count(ss, func(i int, row *T2) bool { +// return row.Name == `A1` +// }) +func Count[T any](array []T, fc func(i int, row T) bool) int { + count := 0 + for i, row := range array { + if fc(i, row) { + count++ + } + } + return count +}