0

我是红宝石的新手!我只想做以下事情:

module Functional
  def filter
  end
end

class Array
  include Functional
  def filter
  end
end

a = [1, -2, 3, 7, 8]
puts a.filter{|x| x>0}.inspect      # ==>Prints out positive numbers

如何修改数组中的“过滤器”方法?有人可以帮助我吗?谢谢

4

2 回答 2

2
class Array
  alias filter :select
end

a = [1, -2, 3, 7, 8]
a.filter{|x| x > 0}
于 2013-11-14T05:45:41.130 回答
1

我认为您正在寻找的是:

module Functional
  def filter
    return self.select{ |i| i > 0 }
  end
end

class Array
  include Functional
end

a = [1, -2, 3, 7, 8]
puts a.filter{|x| x>0}.inspect      
#=>[1, 3, 7, 8]

虽然我认为你可以通过使用来省去麻烦select——没有必要重新实现它。

于 2013-11-14T05:32:03.937 回答