使用外部Array方法修改Array实例自身



在练习ruby时,我写了一个这样的类:

class Array
def my_each
c = 0
until c == size
yield self[c]
c += 1
end
end
def my_map
c = 0
acc = []
my_each {|e| acc << yield(e)}
acc
end
end
def plus_two(a)
a += 2
end
nums = [1, 2, 3, 4, 5]
nums.my_map {|e| plus_two(e)}
p nums

它运行良好,令人期待。然而,我想实现修改实例的Array#my_map!,但我不知道如何以这种方式修改现有的数组。

据我所知(我是一名初级Ruby开发人员,有Java方面的经验(,我们可以通过@访问实例变量,但在这种情况下,我无法找到最佳实践。解决这种情况的好方法是什么?

谢谢。

我添加了一个Array#my_map!方法,如下所示:

def my_map!
self.replace(my_map {|e| yield(e)})
end

因此,我们需要用新的临时实例替换实例(self(。工作良好。

相关内容

  • 没有找到相关文章

最新更新