some_array.each(& method(:some_random_method))如何在ruby中实际工作?

时间:2015-04-16 12:03:21

标签: ruby-on-rails ruby

我最近在我正在处理的其中一个应用程序的源代码中看到了这个,并且知道这相当于:

some_array.each { |element| some_random_method(element) }

这如何在内部发挥作用?

1 个答案:

答案 0 :(得分:2)

               VALUE
rb_ary_each(VALUE array)
{
    long i;
    volatile VALUE ary = array;

    RETURN_SIZED_ENUMERATOR(ary, 0, 0, ary_enum_length);
    for (i=0; i<RARRAY_LEN(ary); i++) {
        rb_yield(RARRAY_AREF(ary, i));
    }
    return ary;
}

来自Documentation