2014-06-30 50 views
4

Ruby的stdlib ForwardableSingleForwardable幾乎相同,請參閱this gist來比較它們的代碼。Forwardable和SingleForwardward的區別,用例?

SingleForwardable的文檔,它說:

SingleForwardable可以在對象級別來設置代表團爲好。此外,SingleForwardable可用於設置代理ClassModule

但我看到Forwardable也可以做這項工作。

它們的主要區別是什麼?最重要的是,它們的用例是什麼?謝謝。

回答

3

對我來說,它似乎幾乎相同。我看到的唯一實際區別是

module_eval(str, __FILE__, line_no) 

Forwardable中加入。

我猜SingleForwardable是舊版本,而Forwardable是它的新名稱。 Forwardable看起來像前者的擴展版本。

它似乎也SingleForwardable加載與debug標誌的支持,但請注意,它的約束爲Forwardable類。我猜想SingleForwardable被拋在了後面,並且打了補丁,以防止破壞已經使用該類的舊代碼。

但仍然,這是一個猜測。

+0

聽起來很合理,謝謝! – juanitofatas