重写注入方法 创客学院第二周末挑战
重写注入是创客学院的第二个周末挑战。本次任务的核心是重新编写数组类的inject
方法。注入操作适用于各种可枚举对象,但此挑战仅聚焦于数组。
核心任务
开发者需要重新打开Array
类或其子类并重写inject
方法。以下是具体步骤:
-
编写测试:首先为新方法编写测试,但注意不要命名为
inject()
,因为Rspec中内部使用了此方法。 -
实现方法:目标是实现一种可以使用初始“累加器”值的
inject
方法,该值默认从数组的第一项开始,也可以设置为特定数值(如0
)。 -
方法过程:该方法会遍历数组中的每个后续元素,对累加器值执行由块定义的操作。例如,累加器可以递增或根据元素的计算重新赋值。
如果你想挑战自己,还可以使用递归和迭代两种方式重写inject
,不过这不作为必须项。以下是一个使用零作为累加器的inject
示例,最终实现数组总和的计算:
[1, 2, 3].inject(0) { |sum, num| sum + num }
# 输出:6
下载地址
用户评论