(newbie) Array > Element Assignment > nil > Documentation

  • Thread starter Potato Peelings
  • Start date
P

Potato Peelings

Ruby version : 1.9.1.376
OS : Windows

I'm checking http://ruby-doc.org/core/classes/Array.html#M002161 (Array
element assignment) which says
...If nil is used in the second and third form, *deletes* elements
from self...
with the example
a[1..-1] = nil #=> ["A"]

This doesn't seem to agree with how Ruby works now. puts a.to_s gives me
["A", nil]
nil seems to work the way any other assignment would. The splice is just
replaced with the new element.

Am I reading this wrong?
 
B

botp


that's an old and buggy doc

try this 1.9 doc

http://ruby-doc.org/core-1.9/classes/Array.html#M000418

btw, you can also use ri

eg


$ ri Array#[]=
Array#[]=

(from ruby core)
------------------------------------------------------------------------------
ary[index] = obj -> obj
ary[start, length] = obj or other_ary or nil -> obj or other_ary or nil
ary[range] = obj or other_ary or nil -> obj or other_ary or nil

------------------------------------------------------------------------------

Element Assignment---Sets the element at index, or replaces a subarray
starting at start and continuing for length elements, or
replaces a subarray specified by range. If indices are greater than
the current capacity of the array, the array grows automatically. A negative
indices will count backward from the end of the array. Inserts elements if
length is zero. An IndexError is raised if a negative index
points past the beginning of the array. See also Array#push, and
Array#unshift.

a = Array.new
a[4] = "4"; #=> [nil, nil, nil, nil, "4"]
a[0, 3] = [ 'a', 'b', 'c' ] #=> ["a", "b", "c", nil, "4"]
a[1..2] = [ 1, 2 ] #=> ["a", 1, 2, nil, "4"]
a[0, 2] = "?" #=> ["?", 2, nil, "4"]
a[0..2] = "A" #=> ["A", "4"]
a[-1] = "Z" #=> ["A", "Z"]
a[1..-1] = nil #=> ["A", nil]
a[1..-1] = [] #=> ["A"]

best regards
-botp
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,995
Messages
2,570,236
Members
46,825
Latest member
VernonQuy6

Latest Threads

Top