可转发和单向转发的差异,用例?

时间:2014-06-30 07:07:12

标签: ruby

Ruby的stdlib ForwardableSingleForwardable几乎相同,请参阅this gist来比较他们的代码。

SingleForwardable的文档中可以看出:

  

SingleForwardable也可用于在对象级别设置委派。此外,SingleForwardable可用于设置ClassModule的委派。

但是我看到Forwardable也能做到这一点。

他们的主要区别是什么,最重要的是,他们的用例是什么?感谢。

1 个答案:

答案 0 :(得分:3)

对我而言,似乎几乎完全相同。我看到的唯一实际差异是

  module_eval(str, __FILE__, line_no)

Forwardable中添加。

我猜SingleForwardable是旧版本,而Forwardable是它的新名称。 Forwardable看起来像前者的扩展版本。

似乎SingleForwardable已经改进了对debug标志的支持,但请注意它已经绑定到Forwardable类。我想SingleForwardable被遗忘了,只是为了不打破任何已经使用该类的旧代码。

但是,这仍然是猜测。