Ruby Basics: Pop Method in Array
The best confirmation can be had in the documentation of Array#pop: http://rubydoc.info/stdlib/core/1.9.3/Array:pop
According to that, the argument specifies how many elements, counting from the back of the array, to remove.
The only difference between pop()
and pop(1)
is that the former will return a single element (the deleted one), while the latter will return an array with a single element (again, the deleted one).
Edit: I suppose the reason the test used -1
is to teach you about the difference between array access with #[]
, where -1
would mean the last element, and methods like pop
, that expect an amount, not a position, as their argument.
The argument specifies how many items to pop. If you specify an argument it returns an array whereas not specifying an argument returns just the element:
ruby-1.8.7-p352 :006 > a = [1,2,3]
=> [1, 2, 3]
ruby-1.8.7-p352 :007 > a.pop(1)
=> [3]
ruby-1.8.7-p352 :008 > a = [4,5,6]
=> [4, 5, 6]
ruby-1.8.7-p352 :009 > a.pop(2)
=> [5, 6]
ruby-1.8.7-p352 :010 > a.pop
=> 4