Отличия с возможностью пересылки и однократной пересылки, варианты использования?

#ruby

#ruby

Вопрос:

Stdlib Forwardable и stdlib в Ruby SingleForwardable практически одинаковы, пожалуйста, ознакомьтесь с этим, чтобы сравнить их код.

Из SingleForwardable документации в нем говорится:

SingleForwardable также может использоваться для настройки делегирования на уровне объекта. Также SingleForwardable может использоваться для настройки делегирования для Class or Module .

Но я вижу Forwardable , что это также может выполнить эту работу.

В чем их основное отличие и, самое главное, каковы их варианты использования? Спасибо.

Ответ №1:

Для меня это кажется почти идентичным. Единственное фактическое различие, которое я вижу, это

   module_eval(str, __FILE__, line_no)
  

добавлено Forwardable .

Я предполагаю, что SingleForwardable это была старая версия, и это Forwardable новое название для нее. Forwardable похоже на расширенную версию первого.

Также кажется, что SingleForwardable он был модифицирован с поддержкой debug флага, но обратите внимание, что он привязан к Forwardable классу. Я предполагаю SingleForwardable , что он был оставлен и исправлен, чтобы не нарушать какой-либо старый код, который уже использовал этот класс.

Но все же это предположение.