Ruby:隐式块迭代器

Ruby:隐式块迭代器,ruby,iterator,block,Ruby,Iterator,Block,有办法做到这一点吗? 而不是: links.each do |link| link.color "red" end 使迭代器(在| |之间)隐式,如下所示: links.each do color "red" end 我很肯定这是不可能的。不过,您可以选择每种元素,但如果没有充分的理由,我肯定不会推荐它 foo = ["test","test2","foo","bar","foobar"] foo.each do |f| f.instance_eval do p rev

有办法做到这一点吗? 而不是:

links.each do |link|
  link.color "red"
end
使迭代器(在| |之间)隐式,如下所示:

links.each do
  color "red"
end

我很肯定这是不可能的。不过,您可以选择每种元素,但如果没有充分的理由,我肯定不会推荐它

foo = ["test","test2","foo","bar","foobar"]

foo.each do |f|
  f.instance_eval do
    p reverse
  end
end

我不确定这是否值得在本例中付出努力(并且增加了不必要的复杂性),但很高兴知道您可以执行以下操作:

proc = Proc.new { |i| i.color 'red' }
links.map(&proc)

-使用
实例评估时为1,粗体警告时为+1。净零。但是,对于这个想法,+1.:)