如何在Ruby中修改类“Array”?

时间:2013-11-14 05:22:30

标签: ruby

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

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

如何在Array中修改“filter”方法? 有人能帮助我吗?谢谢

2 个答案:

答案 0 :(得分:2)

class Array
  alias filter :select
end

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

答案 1 :(得分: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来省去麻烦 - 但是没有必要重新实现它。