ruby-on-rails - 在 Ruby 中使用注入(inject)?

标签 ruby-on-rails ruby hash

<分区>

我有一个名为 Hsh 的类,它基本上模拟哈希。它有一个 Couple 对象数组(其中包含名为 one 和 2 的字段,一个是 int 另一个是该 int 的字符串名称)。

我应该能够接听以下电话:

h = x.inject({}) {|a, b| a[b.one] = b.two; a}

其中 x 是 Hsh 对象。

我不确定如何在 Hsh 中实现注入(inject)方法?比如,我会写什么:

def inject ????
??
??
end

它应该做的就是创建一个散列映射。

最佳答案

你真的不需要实现它,只需实现Hsh#each并包含Enumerable,你将免费获得inject .

对于您的具体示例,这样的事情应该有效:

def inject accumulator
   #I assume Hsh has some way to iterate over the elements
   each do |elem|
    accumulator = yield accumulator, elem
   end
   accumulator
end

但是 inject 的实际实现有点不同(例如,在不提供累加器的情况下工作,采用符号而不是 block 等)

关于ruby-on-rails - 在 Ruby 中使用注入(inject)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8416142/

相关文章:

ruby-on-rails - 一般 Active Record 加入或包含

javascript - rails : Using JQuery for post request instead of link_to

ruby-on-rails - Rails 3.1 可安装引擎 : How to use/template it inside another application?

css - 设置机车引擎出了可怕的错误

jquery - 获取 URL 哈希位置,并在 jQuery 中使用它

ruby-on-rails - created_at 的 Rspec/FactoryGirl 测试顺序

ruby-on-rails - IO.popen 和 ffmpeg 出错

ruby-on-rails - 找不到带有可执行 rails 的 gem railties (>= 0.a) (Gem::GemNotFoundException)

c++ - 如何找到不同的子串?

javascript - url 中没有哈希值的回家路线...backbone.js?