Ruby的stdlib Forwardable
和SingleForwardable
几乎相同,请参阅this gist来比较他们的代码。
从SingleForwardable
的文档中可以看出:
SingleForwardable
也可用于在对象级别设置委派。此外,SingleForwardable
可用于设置Class
或Module
的委派。
但是我看到Forwardable
也能做到这一点。
他们的主要区别是什么,最重要的是,他们的用例是什么?感谢。
答案 0 :(得分:3)
对我而言,似乎几乎完全相同。我看到的唯一实际差异是
module_eval(str, __FILE__, line_no)
在Forwardable
中添加。
我猜SingleForwardable
是旧版本,而Forwardable
是它的新名称。 Forwardable
看起来像前者的扩展版本。
似乎SingleForwardable
已经改进了对debug
标志的支持,但请注意它已经绑定到Forwardable
类。我想SingleForwardable
被遗忘了,只是为了不打破任何已经使用该类的旧代码。
但是,这仍然是猜测。