each_with_object 在 ruby 中的作用

问题描述 投票:0回答:1

each_with_object 的作用是什么?从哪里得到选择? https://github.com/bodrovis/lokalise_manager/blob/master/lib%2Flokalise_manager%2Ftask_definitions%2Fbase.rb#L23

primary_opts = global_config
                 .singleton_methods
                 .filter { |m| m.to_s.end_with?('=') }
                 .each_with_object({}) do |method, opts|
  reader = method.to_s.delete_suffix('=')
  opts[reader.to_sym] = global_config.send(reader)
end
# *your text*

尝试了 ruby 网站上的后部文档

ruby ruby-on-rails-4 rubygems
1个回答
0
投票

each_with_object
以与
each
类似的方式迭代可枚举。但允许您向块传递一个附加对象(如本例中的空哈希),并在最后返回该对象。

这是一个简化的示例。而不是

hash = {}
[1, 2, 3].each do |number|
  hash[number] = number * number
end
hash
#=> { 1 => 1, 2 => 4, 3 => 9 }

each_with_object
允许您写:

[1, 2, 3].each_with_object({}) do |number, hash|
  hash[number] = number * number
end
#=> { 1 => 1, 2 => 4, 3 => 9 }
© www.soinside.com 2019 - 2024. All rights reserved.