Ruby API - 哈希#map

时间:2014-01-01 16:19:18

标签: ruby

我正在做练习,解决方案是:

def solution(pairs)
  pairs.map{|k,v| "#{k} = #{v}"}.join(',')
end

我的解决方案有效,但有所不同,因为在Hash类doc中我没有找到名为map的方法,它出现在Array类中,而不是Hash类中。 所以问题是,我如何阅读核心ruby api?我有时需要猜测一个类是否有方法?为什么没有报告map方法?

1 个答案:

答案 0 :(得分:6)

Hash包含Enumerable模块。而Hash#map实际上是Enumerable#map。打开您的 IRB ,按照以下操作,您将获得所有答案。查看Method类的文档。

h = {1=>2}
h.method(:map)
# => #<Method: Hash(Enumerable)#map>
h.method(:map).inspect
# => "#<Method: Hash(Enumerable)#map>"
h.method(:map).owner
# => Enumerable