2013-02-12 41 views
3

隨機類方法Random.rand別名爲rand(即相當於Random.rand)。無論如何要獲取Ruby使用的類方法別名的列表?Ruby類方法別名列表

不知道,Ruby文檔提供了一個完整的列表,因爲它不識別rand作爲Random.rand的別名,但沒有提到,srand是別名但它可以使用srandRandom.srand

我最終回答調用我的自己的問題 - 請看下面。

+1

'srand'不是蘭特的別名;它被用於播種僞隨機數生成器以「確保在程序的不同運行之間可重複的隨機數序列(http://www.ruby-doc.org/core-1.9.3/Kernel.html#method-i -rand)」。至於你的問題,我建議你閱讀這個答案:[http://stackoverflow.com/questions/3676834/is-it-possible-to-identify-aliased-methods-in-ruby](http://stackoverflow。 com/questions/3676834/is-it-it-possible-identify-aliased-methods-in-ruby) – 2013-02-12 16:08:24

+0

在回覆你的陳述時,「srand不是rand的別名;」 - 我不確定你爲什麼認爲我暗示它是。我寫的是「......但沒有提及srand是別名,可以使用srand或Random.srand調用」 就引用的鏈接而言,如果要確定實例方法別名但是,我試圖獲得類方法別名列表。有關詳細信息,請參閱我的編輯原始帖子,作爲我的混淆重新類方法別名,以及我現在如何相信這些所謂的別名是內核實例方法。 – Dennis 2013-02-14 03:07:52

+0

我明白了;很抱歉對於這個誤會。 – 2013-02-14 05:48:50

回答

1

編輯我原來的問題:

這個問題有它的根在Ruby Random類的文檔參考http://ruby-doc.org/core-2.0/Random.html是指一個別名蘭特的Random.rand類方法的誤解。事實證明,rand和srand調用了Kernel實例方法。要調用Random類的方法rand和srand,你需要給出完全解析的調用,例如Random.rand或Random.srand

因此,我一直在尋找名單實際上是內核的實例方法的內核文檔http://www.ruby-doc.org/core-1.9.3/Kernel.html