Project

General

Profile

Actions

Bug #1387

closed

first(0) and last(0) behavior

Added by loqi (Loqi Tamaroon) about 15 years ago. Updated almost 13 years ago.

Status:
Third Party's Issue
Assignee:
-
Target version:
-
ruby -v:
1.8.6

Description

=begin
I'm not sure if there was an explicit decision to have Array#first(0) and last(0) return the entire receiver, but it's messing me up slightly.

"abc".first(3) => "abc"
"abc".first(2) => "ab"
"abc".first(1) => "a"
"abc".first(0) => "abc"

There's similar behavior with last(0).

In my opinion, first(0) and last(0) should return a zero-length collection.

Is there a rationale for their current behavior, or is it a mistake?
=end

Actions #1

Updated by daz (Dave B) about 15 years ago

=begin
Those methods (for String) don't exist in Matz Ruby:

puts 'ruby %s (%s) [%s]' % [RUBY_VERSION, RUBY_RELEASE_DATE, RUBY_PLATFORM]

p "abc".first(1)

#ruby 1.8.6 (2008-08-11) [i386-mswin32]
#tmp:3: undefined method `first' for "abc":String (NoMethodError)

... neither in 1.9.1 ...

#ruby 1.9.1 (2009-01-30) [i386-mswin32_90]

tmp:3:in <main>': undefined method first' for "abc":String (NoMethodError)

A quick search finds they are added by Rails but maybe you have
some other library which adds the methods.
http://errtheblog.com/posts/42-rails-rubyisms-advent

Either way, if you can't track them down, try asking on either
the ruby-talk or Rails lists.

daz

=end

Actions #2

Updated by matz (Yukihiro Matsumoto) about 15 years ago

  • Status changed from Open to Third Party's Issue

=begin

=end

Actions

Also available in: Atom PDF

Like0
Like0Like0