#ruby
#ruby
Вопрос:
Stdlib Forwardable
и stdlib в Ruby SingleForwardable
практически одинаковы, пожалуйста, ознакомьтесь с этим, чтобы сравнить их код.
Из SingleForwardable
документации в нем говорится:
SingleForwardable
также может использоваться для настройки делегирования на уровне объекта. ТакжеSingleForwardable
может использоваться для настройки делегирования дляClass
orModule
.
Но я вижу Forwardable
, что это также может выполнить эту работу.
В чем их основное отличие и, самое главное, каковы их варианты использования? Спасибо.
Ответ №1:
Для меня это кажется почти идентичным. Единственное фактическое различие, которое я вижу, это
module_eval(str, __FILE__, line_no)
добавлено Forwardable
.
Я предполагаю, что SingleForwardable
это была старая версия, и это Forwardable
новое название для нее. Forwardable
похоже на расширенную версию первого.
Также кажется, что SingleForwardable
он был модифицирован с поддержкой debug
флага, но обратите внимание, что он привязан к Forwardable
классу. Я предполагаю SingleForwardable
, что он был оставлен и исправлен, чтобы не нарушать какой-либо старый код, который уже использовал этот класс.
Но все же это предположение.