(newbie) Array > Element Assignment > nil > Documentation

Ruby version : 1.9.1.376
OS : Windows

I’m checking class Array - RDoc Documentation (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?

On Wed, Jun 9, 2010 at 4:39 PM, Potato Peelings
[email protected] wrote:

I’m checking class Array - RDoc Documentation (Array

that’s an old and buggy doc

try this 1.9 doc

class Array - RDoc Documentation

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

botp wrote:

that’s an old and buggy doc

try this 1.9 doc
class Array - RDoc Documentation

Thanks! That resolves it.

btw, you can also use ri
This is nice. Thanks again.