Ruby Newbie homepage Ruby Newbie homepage

How to use

Quick guide

Official content
Calls the block, if given, with each element; replaces the element with the block's return value:
a = [:foo, 'bar', 2]! { |element| element.class } # => [Symbol, String, Integer]
Returns a new Enumerator if no block given:
a = [:foo, 'bar', 2]
a1 =!
a1 # => #<Enumerator: [:foo, "bar", 2]:map!>
Array#collect! is an alias for Array#map!.
               static VALUE
rb_ary_collect_bang(VALUE ary)
    long i;

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

Was this page useful?