diff options
-rw-r--r-- | ChangeLog | 4 | ||||
-rw-r--r-- | lib/set.rb | 13 |
2 files changed, 14 insertions, 3 deletions
@@ -1,3 +1,7 @@ +Wed Jul 31 14:41:36 2013 Akinori MUSHA <knu@iDaemons.org> + + * lib/set.rb: [DOC] Add a couple of notes on Hash as storage. + Wed Jul 31 14:38:52 2013 Akinori MUSHA <knu@iDaemons.org> * lib/set.rb: [DOC] Fix example result. Hash is now ordered. diff --git a/lib/set.rb b/lib/set.rb index d98cc0b0be..cc068f0a52 100644 --- a/lib/set.rb +++ b/lib/set.rb @@ -27,14 +27,21 @@ # This is a hybrid of Array's intuitive inter-operation facilities and # Hash's fast lookup. # -# The equality of each couple of elements is determined according to -# Object#eql? and Object#hash, since Set uses Hash as storage. -# # Set is easy to use with Enumerable objects (implementing +each+). # Most of the initializer methods and binary operators accept generic # Enumerable objects besides sets and arrays. An Enumerable object # can be converted to Set using the +to_set+ method. # +# Set uses Hash as storage, so you must note the following points: +# +# * Equality of elements is determined according to Object#eql? and +# Object#hash. +# * Set assumes that the identity of each element does not change +# while it is stored. Modifying an element of a set will render the +# set to an unreliable state. +# * When a string is to be stored, a frozen copy of the string is +# stored instead unless the original string is already frozen. +# # == Comparison # # The comparison operators <, >, <= and >= are implemented as |