gpt4 book ai didi

ruby - 重写 Ruby 注入(inject)

转载 作者:数据小太阳 更新时间:2023-10-29 08:31:15 24 4
gpt4 key购买 nike

这是一个脑筋急转弯。

我正在尝试重写 Ruby Inject 方法。我已经做到了以下。

class Array

def injector(input = nil)

if input == nil
num = self.first
else
num = input
end
self[0..-1].each do |x|
num = yield(num, x)
end
return num
end
end

它正在通过一些测试,但并不完全准确,例如;

[1,2,3,4,5].injector(0) {|x,y| x + y} #=> 14

与预期输出 15 相反,这是一个舍入错误吗?我似乎无法弄清楚这一点

Additional example (above updated [0..-1]):

[9,8,7,6,5].injector {|x,y| x * y} #=> 136080

Ruby .inject 输出 15120

最佳答案

起始索引很重要,因为它取决于您的输入。

class Array

def injector(input = nil)
if input.nil?
start = 1
num = self.first
else
start = 0
num = input
end
self[start..-1].each do |x|
num = yield(num, x)
end

return num
end

end

关于ruby - 重写 Ruby 注入(inject),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32554472/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com