Preview Ruby 4.1 is a preview. It can change before the final release. Switch to Ruby 4.0 →
instance method
Set#add?
(A) -> self?
add?(object) → self or nil
set.c
View on GitHub ↗
static VALUE
set_i_add_p(VALUE set, VALUE item)
{
rb_check_frozen(set);
if (set_iterating_p(set)) {
if (!set_table_lookup(RSET_TABLE(set), (st_data_t)item)) {
no_new_item();
}
return Qnil;
}
else {
return set_insert_wb(set, item) ? Qnil : set;
}
}
Like add, but returns nil if the given object is already in self:
Example
set = Set[0, 1, 2] set.add?(:foo) # => Set[0, 1, 2, :foo] set.add?(0..9) # => Set[0, 1, 2, :foo, 0..9] set.add?(2) # => nil
Related: see Methods for Assigning.