Preview Ruby 4.1 is a preview. It can change before the final release. Switch to Ruby 4.0 →
instance method
Set#reject!
() { (A) -> untyped } -> self?
reject! {|element| ... } → self or nil
reject! → enumerator
set.c
View on GitHub ↗
static VALUE
set_i_reject(VALUE set)
{
RETURN_SIZED_ENUMERATOR(set, 0, 0, set_enum_size);
rb_check_frozen(set);
set_table *table = RSET_TABLE(set);
size_t n = set_table_size(table);
set_iter(set, set_delete_if_i, 0);
if (n == set_table_size(table)) return Qnil;
set_compact_after_delete(set);
return set;
}
With a block given, like delete_if, but returns nil if no changes were made:
Example
set = Set[*0..9] # => Set[0, 1, 2, 3, 4, 5, 6, 7, 8, 9] set.reject! {|element| element.even? } # => Set[1, 3, 5, 7, 9] set.reject! {|element| element.even? } # => nil set.reject! {|element| element.odd? } # => Set[]
With no block given, returns an Enumerator.
Related: see Methods for Deleting.
See also
#proper_superset?
#replace
#proper_subset?
#reset
also in
4.0 · 3.4 · 3.3 · 3.2 · 3.1 · 3.0