gpt4 book ai didi

ruby-on-rails - ruby 注入(inject)方法没有做我认为应该做的事情

转载 作者:太空宇宙 更新时间:2023-11-03 17:05:47 26 4
gpt4 key购买 nike

有谁知道为什么会失败?

ree-1.8.7-2011.03 :008 > 3.times.inject({}) {|result, el| result[el.months.ago.strftime("%B")] = "blah"}
IndexError: string not matched
from (irb):8:in `[]='
from (irb):8
from (irb):8:in `inject'
from (irb):8:in `each'
from (irb):8:in `times'
from (irb):8:in `each'
from (irb):8:in `

最佳答案

inject将 block 的返回值作为 result 提供给下一次迭代,但 Hash 分配返回分配的内容。从 block 中返回 result:

3.times.inject({}) {|result, el| result[el.months.ago.strftime("%B")] = "blah"; result }

或使用 each_with_object因为你并没有真正注入(inject):

3.times.each_with_object({}) {|el, result| result[el.months.ago.strftime("%B")] = "blah" }

关于ruby-on-rails - ruby 注入(inject)方法没有做我认为应该做的事情,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7802349/

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