(newbie) Array > Element Assignment > nil > Documentation

Discussion in 'Ruby' started by Potato Peelings, Jun 9, 2010.

  1. 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?
    --
    Posted via http://www.ruby-forum.com/.
     
    Potato Peelings, Jun 9, 2010
    #1
    1. Advertising

  2. Potato Peelings

    botp Guest

    On Wed, Jun 9, 2010 at 4:39 PM, Potato Peelings
    <> wrote:
    > I'm checking http://ruby-doc.org/core/classes/Array.html#M002161 (Array


    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
     
    botp, Jun 9, 2010
    #2
    1. Advertising

  3. Potato Peelings, Jun 10, 2010
    #3
    1. Advertising

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

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. Brian Candler

    puts nil generates "nil\n"

    Brian Candler, Nov 6, 2004, in forum: Ruby
    Replies:
    1
    Views:
    119
  2. John Carter
    Replies:
    64
    Views:
    676
    Klaus Stein
    May 19, 2005
  3. ako...

    a == nil or a.nil?

    ako..., Nov 22, 2005, in forum: Ruby
    Replies:
    6
    Views:
    150
    Douglas Livingstone
    Nov 23, 2005
  4. Christoffer Sawicki
    Replies:
    5
    Views:
    273
    Christoffer Sawicki
    Sep 2, 2006
  5. Eero Saynatkari

    nil.to_s != "nil"

    Eero Saynatkari, Oct 27, 2006, in forum: Ruby
    Replies:
    11
    Views:
    241
    Gregory Brown
    Oct 28, 2006
Loading...

Share This Page