Subarray using [1,-1] returns nil

a = %w(a b c d e f g) ;
puts “a.length = #{a.length}” ;

b = a[1,-1] ;
puts “b.length = #{b.length}” ;

Why is array b nil after the subarray? I expect it to be equal to “a”
minus the first element.

Todd

Todd B. wrote:

a = %w(a b c d e f g) ;
puts “a.length = #{a.length}” ;

b = a[1,-1] ;
puts “b.length = #{b.length}” ;

Why is array b nil after the subarray? I expect it to be equal to “a”
minus the first element.

Todd

I think I see the issue (the issue = my error). The “-1” is the last
element of the array, and the method is epxecting a length, not an
element.

Todd

Hi,

At Fri, 24 Aug 2007 08:14:15 +0900,
Todd B. wrote in [ruby-talk:266016]:

I think I see the issue (the issue = my error). The “-1” is the last
element of the array, and the method is epxecting a length, not an
element.

Maybe, don’t you want to try a[1…-1]?

Nobuyoshi N. wrote:

Hi,

Maybe, don’t you want to try a[1…-1]?

Very good! Works fantastic. Thanks!

I had coded b=a[1,a.length-1] but I like your solution better.

Todd