如何在ruby中扩展数组方法?

时间:2011-12-02 03:13:13

标签: ruby

这是我的代码:

class Array
    def anotherMap
         self.map {yield}
    end
end

print [1,2,3].anotherMap{|x| x}

我希望得到 [1,2,3] 的输出,但我得到 [nil,nil,nil]
我的代码出了什么问题?

2 个答案:

答案 0 :(得分:9)

您的代码不会产生您传递给#map的块的值。您需要提供一个块参数并使用该参数调用yield

class Array
    def anotherMap
         self.map {|e| yield e }
    end
end

print [1,2,3].anotherMap{|x| x}

答案 1 :(得分:9)

class Array
  def another_map(&block)
    map(&block)
  end
end