2

irb我做

a = [1, 2, 3]
#=> [1, 2, 3]
a.class
#=> Array
a.methods.sort
#=> [:!, :!=, ..., :inject, ...]

并得到它a有一个方法inject,但在http://www.ruby-doc.org/core-2.0/Array.html我找不到关于inject. 为什么?它是 Ruby API 中的错误吗?

我在哪里可以找到有关 Array 的实例方法的文档inject

4

1 回答 1

5

inject中定义EnumerableArray包括该模块:

Array.included_modules
#=> [Enumerable, Kernel]

API 列表包括方法列表下方的模块。

顺便说一句,您可以检查一种方法来查找其来源:

Array.instance_method(:inject)
#=> #<UnboundMethod: Array(Enumerable)#inject>
#                      ↑        ↑
#                    Class    Module
于 2013-08-07T07:39:45.467 回答