Actions
Feature #8626
openAdd a Set coercion method to the standard lib: Set(possible_set)
Status:
Open
Assignee:
-
Target version:
-
Description
=begin
I'd like to be able to take an object that may already be a Set (or not) and ensure that it is one
For example:
set1 = Set.new
set2 = Set(set1)
set3 = Set(nil)
assert set1.equal?(set2)
assert_instance_of(Set, set3)
This is different from the behavior of Set.new in that it will return the same set rather than creating a new one
set1 = Set.new
set2 = Set.new(set1) # <--- completely new object in memory
set2 = Set(set1) # <--- same object from memory
My thoughts about the implementation are simple:
def Set(possible_set)
possible_set.is_a?(Set) ? possible_set : Set.new(possible_set)
end
I'm not sure if there are edge cases to unexpected behavior that I haven't thought of and I'm wondering if it ought to have a Set.try_convert as well
=end
Actions
Like0
Like0Like0Like0