2013-11-27 2 views
2

В чем разница между to_enum и enum_for в Ruby? В некоторых случаях я мог использовать их взаимозаменяемо. Благодаря!Enum_to vs. enum_for in Ruby

+0

Чтобы быть ясным, они не обрабатываются одинаково, они одинаковы. – vgoff

+0

Если они не сглажены, они вряд ли будут иметь одинаковое значение. Даже если обе имеют идентичную реализацию класса 'Object', метод может быть переопределен в подклассах. Тем не менее, я не знаю, в чем разница между этими двумя методами. – skalee

ответ

4

Они сопоставлены с тем же методом в MRI, object_to_enum, поэтому вы можете использовать их взаимозаменяемо.

rb_define_method(rb_mKernel, "to_enum", obj_to_enum, -1); 
rb_define_method(rb_mKernel, "enum_for", obj_to_enum, -1); 

Посмотрите источник here.