提交 d7c4d0c7 编写于 作者: F Francesco Rodriguez

adding examples to deep_dup method

上级 7a95d079
class Object
# Returns a deep copy of object if it's duplicable.
# Returns a deep copy of object if it's duplicable. If it's
# not duplicable, returns +self+.
#
# object = Object.new
# dup = object.deep_dup
# dup.instance_variable_set(:@a, 1)
#
# object.instance_variable_defined?(:@a) #=> false
# dup.instance_variable_defined?(:@a) #=> true
def deep_dup
duplicable? ? dup : self
end
......@@ -7,6 +15,13 @@ def deep_dup
class Array
# Returns a deep copy of array.
#
# array = [1, [2, 3]]
# dup = array.deep_dup
# dup[1][2] = 4
#
# array[1][2] #=> nil
# dup[1][2] #=> 4
def deep_dup
map { |it| it.deep_dup }
end
......@@ -14,6 +29,13 @@ def deep_dup
class Hash
# Returns a deep copy of hash.
#
# hash = { a: { b: 'b' } }
# dup = hash.deep_dup
# dup[:a][:c] = 'c'
#
# hash[:a][:c] #=> nil
# dup[:a][:c] #=> "c"
def deep_dup
each_with_object(dup) do |(key, value), hash|
hash[key.deep_dup] = value.deep_dup
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册