Preview Ruby 4.1 is a preview. It can change before the final release. Switch to Ruby 4.0 →
instance method
Set#delete_if
() { (A) -> untyped } -> self
delete_if {|element| ... } → self
delete_if → enumerator
set.c
View on GitHub ↗
static VALUE
set_i_delete_if(VALUE set)
{
RETURN_SIZED_ENUMERATOR(set, 0, 0, set_enum_size);
rb_check_frozen(set);
set_iter(set, set_delete_if_i, 0);
set_compact_after_delete(set);
return set;
}
With a block given, calls the block with each element in self; removes the element if the block returns a truthy value:
Example
set = Set[*0..9] # => Set[0, 1, 2, 3, 4, 5, 6, 7, 8, 9] set.delete_if {|element| element.even? } # => Set[1, 3, 5, 7, 9]
With no block given, returns an Enumerator.
Related: Methods for Deleting.