[#1816] Ruby 1.5.3 under Tru64 (Alpha)? — Clemens Hintze <clemens.hintze@...>

Hi all,

17 messages 2000/03/14

[#1989] English Ruby/Gtk Tutorial? — schneik@...

18 messages 2000/03/17

[#2241] setter() for local variables — ts <decoux@...>

18 messages 2000/03/29

[ruby-talk:02260] Re: Hashing

From: matz@... (Yukihiro Matsumoto)
Date: 2000-03-30 04:35:00 UTC
List: ruby-talk #2260
Hi,

In message "[ruby-talk:02254] Hashing"
    on 00/03/30, mrilu <mrilu@ale.cx> writes:

|class OpenStruct
|  def initialize(hash=nil)
|    @table = {}
|    if hash
|      for k,v in hash
|        @table[k] = v
|      end
|    end
|  end
|
|I think we're trying to make copy of hash 'hash' to @table. Why don't we
|say: 
|     @table = hash.dup
|or
|     @table = hash.clone
|or
|     @table = Hash.new.replace hash

No specific reason.  `dup' is preferable.

|Now some other points of Hash. First about documentation. This excerpt is
|from my html-version of 1.4 documents.
|
|dup
|               Returns a newly created hash table which has the save keys
|               and values to the receiver. clone returns the complete
|               copy of the original hash table, including freeze status
|               and instance variables. On the other hand, dup copies the
|               hash table containts.
|
|Note: I didn't see any other docs for Hash.clone.
|I try to fix few things here, but English is not my mother tongue so this
|just can't be right:
|
|dup
|	Returns a newly created hash table which has same keys and values
|	as the original hash instance. dup differs from clone by copying
|	only hash contents (that is key,value-pairs).
|	Example: 
|	  foo = {"key"=>"value", "baz"=>"zak"}
|	  bar = foo.dup
|	  print bar[baz]   # => "zak"
|
|clone
|	Returns a newly created hash table which is a complete copy of the
|	original hash instance. clone differs from dup by copying original
|	hash table completely including key,value-pairs, freeze status and
|	instance variables.
|	Example:
|	 ...
|
|I'd like to see good examples for different copying strategies too
|(shallow, deep).

It's clearly stated in Dave&Andy's book.  I will fix the reference in
near future.

|It seems that invert makes clone (or duplicate) of it's keys and values.
|If this is important at all it should make it's way into documentation!

Yes.  Let me add this in my ToDo list.

							matz.

In This Thread