Look the below code with Object#clone:

foo = Object.new
def foo.bar
   "hi"
end
baz = foo.clone
foo.bar # => "hi"
baz.bar # => "hi"

Now with Object#dup

foo = Object.new
def foo.bar
   "hi"
end
baz = foo.dup
foo.bar # => "hi"
baz.bar # `<main>': undefined method `bar' for #<Object:0x989b378>
(NoMethodError)

Why the below part didn't work.

--
Posted via http://www.ruby-forum.com/.

--
You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group.
To unsubscribe from this group and stop receiving emails from it, send an email to rubyonrails-talk+unsubscribe@googlegroups.com.
To post to this group, send email to rubyonrails-talk@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/rubyonrails-talk/df21c6695a428cad5b46941018158f1c%40ruby-forum.com.
For more options, visit https://groups.google.com/groups/opt_out.

Search Discussions

  • Narrenblut . at Sep 23, 2013 at 12:36 am
    I'd think, the difference in following example shows easier, where is the
    difference in you case, too


    foo = [1,2]
    bar= foo.dup
    foo<< 3

    puts bar.inspect

    foo= [ [1,2] ]
    bar = foo.dup
    foo[0] << 3

    puts bar.inspect

    Try it with clone - and you recognize the difference between deep copy
    clone and shallow copy dup

    In your case you only get a Object.new where you set: baz = foo.dup



    On Sun, Sep 22, 2013 at 12:32 AM, Love U Ruby wrote:

    Look the below code with Object#clone:

    foo = Object.new
    def foo.bar
    "hi"
    end
    baz = foo.clone
    foo.bar # => "hi"
    baz.bar # => "hi"

    Now with Object#dup

    foo = Object.new
    def foo.bar
    "hi"
    end
    baz = foo.dup
    foo.bar # => "hi"
    baz.bar # `<main>': undefined method `bar' for #<Object:0x989b378>
    (NoMethodError)

    Why the below part didn't work.

    --
    Posted via http://www.ruby-forum.com/.

    --
    You received this message because you are subscribed to the Google Groups
    "Ruby on Rails: Talk" group.
    To unsubscribe from this group and stop receiving emails from it, send an
    email to rubyonrails-talk+unsubscribe@googlegroups.com.
    To post to this group, send email to rubyonrails-talk@googlegroups.com.
    To view this discussion on the web visit
    https://groups.google.com/d/msgid/rubyonrails-talk/df21c6695a428cad5b46941018158f1c%40ruby-forum.com
    .
    For more options, visit https://groups.google.com/groups/opt_out.
    --
    You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group.
    To unsubscribe from this group and stop receiving emails from it, send an email to rubyonrails-talk+unsubscribe@googlegroups.com.
    To post to this group, send email to rubyonrails-talk@googlegroups.com.
    To view this discussion on the web visit https://groups.google.com/d/msgid/rubyonrails-talk/CAC%2BiCjPJT0i1O8kyvWHHG4tswD7j5VRJsqg5rgjqcBKkZDKLkQ%40mail.gmail.com.
    For more options, visit https://groups.google.com/groups/opt_out.

Related Discussions

Discussion Navigation
viewthread | post
Discussion Overview
grouprubyonrails-talk @
categoriesrubyonrails
postedSep 21, '13 at 10:32p
activeSep 23, '13 at 12:36a
posts2
users2
websiterubyonrails.org
irc#RubyOnRails

2 users in discussion

Love U Ruby: 1 post Narrenblut .: 1 post

People

Translate

site design / logo © 2022 Grokbase