我正在做练习,解决方案是:
def solution(pairs)
pairs.map{|k,v| "#{k} = #{v}"}.join(',')
end
我的解决方案有效,但有所不同,因为在Hash类doc中我没有找到名为map
的方法,它出现在Array
类中,而不是Hash
类中。
所以问题是,我如何阅读核心ruby api?我有时需要猜测一个类是否有方法?为什么没有报告map
方法?
答案 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