2013-08-07 60 views
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的文檔?

+5

當你是一個新手,並找到的東西,看起來像一個bug,它是沒有時間99.9999%... – tokland

+1

你是對的!下次我會保持謹慎...... –

+0

@tokland這是一個非常好的原則,但是一些私有方法目前還沒有顯示在ruby-doc.org上,即使它們在普通的Ruby中使用。 –

回答

5

injectEnumerable定義,Array包括模塊:

Array.included_modules 
#=> [Enumerable, Kernel] 

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

順便說一句,你可以檢查的方法找到它的起源:

Array.instance_method(:inject) 
#=> #<UnboundMethod: Array(Enumerable)#inject> 
#      ↑  ↑ 
#     Class Module 
+0

謝謝。對我很有幫助! –

+1

非常好的解釋...喜歡它'Array.instance_method(:inject)'..我打算給它..但你做了..所以我不會... :) –

+0

最後一個問題:如何知道,其中包括任何類方法(例如:: instance_method)。我使'Array.public_class_method(:instance_method) => Array'但Array沒有::實例方法方法。我也在內核和枚舉模塊中看到 - 它們也沒有:: instance_method方法... –

相關問題