Ruby Newbie homepage Ruby Newbie homepage

How to use

Quick guide

Official content
Removes and returns trailing elements.
When no argument is given and self is not empty, removes and returns the last element:
a = [:foo, 'bar', 2]
a.pop # => 2
a # => [:foo, "bar"]
Returns nil if the array is empty.
When a non-negative Integer argument n is given and is in range, removes and returns the last n elements in a new Array:
a = [:foo, 'bar', 2]
a.pop(2) # => ["bar", 2]
If n is positive and out of range, removes and returns all elements:
a = [:foo, 'bar', 2]
a.pop(50) # => [:foo, "bar", 2]
Related: push, shift, unshift.
               static VALUE
rb_ary_pop_m(int argc, VALUE *argv, VALUE ary)
    VALUE result;

    if (argc == 0) {
        return rb_ary_pop(ary);

    result = ary_take_first_or_last(argc, argv, ary, ARY_TAKE_LAST);
    ARY_INCREASE_LEN(ary, -RARRAY_LEN(result));
    return result;

Was this page useful?