这是我的代码:
class Array
def anotherMap
self.map {yield}
end
end
print [1,2,3].anotherMap{|x| x}
我希望得到 [1,2,3] 的输出,但我得到 [nil,nil,nil]
我的代码出了什么问题?
答案 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