Bug #1387
closed
first(0) and last(0) behavior
Added by loqi (Loqi Tamaroon) over 15 years ago.
Updated over 13 years ago.
Status:
Third Party's Issue
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
=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
- Status changed from Open to Third Party's Issue
Also available in: Atom
PDF
Like0
Like0Like0