diff --git a/iterator/set.go b/iterator/set.go index 6f1ba9d..5f00fd8 100644 --- a/iterator/set.go +++ b/iterator/set.go @@ -88,11 +88,7 @@ func (s *OrderedSet[T]) All() iter.Seq[T] { func (s Set[T]) FilterMap(fn func(T) bool) iter.Seq[T] { return func(yield func(T) bool) { for v := range s.m { - if !fn(v) { - continue - } - - if !yield(v) { + if fn(v) && !yield(v) { return } } @@ -104,11 +100,7 @@ func (s *OrderedSet[T]) FilterMap(fn func(T) bool) iter.Seq[T] { return func(yield func(T) bool) { // 迭代有序切片 for v := range slices.Values(s.ordered) { - if !fn(v) { - continue - } - - if !yield(v) { + if fn(v) && !yield(v) { return } }