【发布时间】:2018-12-03 16:09:37
【问题描述】:
刚接触编码,并且已经了解了 Ruby 中一些更常用的方法,猴子修补它们以更好地了解每种方法的工作原理(顺便说一句,这帮助了很多)。
现在我又在做同样的事情,但是对于我之前迭代的那些,我正在使用递归。我的问题是:
我正在为Array 类创建自己的#inject 方法,并且我想递归地编写它。该方法将允许传递可选的累加器以及 proc。使用以下格式如何做到这一点?
class Array
def my_inject(accum = nil, &prc)
#code
end
end
另外,我是否需要担心改变原始数组,我应该使用#dup 吗?提前感谢您的帮助!
【问题讨论】:
-
你想在
my_inject里面写什么? -
不知道你是不是在开玩笑,但如果不是,我想为 Array 类编写一个与 Ruby 的 Enumerable #inject (#reduce) 方法相同的方法,如原帖所述
-
^ 使用递归
标签: arrays ruby inject proc accumulator