我最近在我正在处理的其中一个应用程序的源代码中看到了这个,并且知道这相当于:
some_array.each { |element| some_random_method(element) }
这如何在内部发挥作用?
答案 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;
}