Project

General

Profile

Bug #3027

Random#rand(nil)

Added by marcandre (Marc-Andre Lafortune) over 9 years ago. Updated over 8 years ago.

Status:
Closed
Priority:
Normal
Target version:
ruby -v:
ruby 1.9.2dev (2010-03-03 trunk 26805) [x86_64-darwin10.2.0]
Backport:
[ruby-core:29075]

Description

=begin
Hi Nobu.

Looking at Random#rand, I notice that passing nil has the same result as not passing any argument.

Either it should raise an ArgumentError like the documentation implies, or else the documentation should be modified.

I would argue to raise an error because:

  • it is easy to pass nothing, or pass 1.0 instead, and get the same result if that is what is desired
  • it could hide an error in the code, where the result is unexpectedly nil but the programmer didn't think about it (like whiny nils in rails) =end

History

#1

Updated by nobu (Nobuyoshi Nakada) over 9 years ago

=begin
Hi,

At Sun, 28 Mar 2010 09:06:57 +0900,
Marc-Andre Lafortune wrote in [ruby-core:29075]:

Looking at Random#rand, I notice that passing nil has the
same result as not passing any argument.

It comes from Kernel#rand.

Either it should raise an ArgumentError like the
documentation implies, or else the documentation should be
modified.

I would argue to raise an error because:

  • it is easy to pass nothing, or pass 1.0 instead, and get the same result if that is what is desired
  • it could hide an error in the code, where the result is unexpectedly nil but the programmer didn't think about it (like whiny nils in rails)

Agreed. For the backward compatibility, I'll keep Kernel#rand
and added the documentation instead.

--
Nobu Nakada

=end

#2

Updated by nobu (Nobuyoshi Nakada) over 9 years ago

  • Status changed from Open to Closed
  • % Done changed from 0 to 100

=begin
This issue was solved with changeset r27204.
Marc-Andre, thank you for reporting this issue.
Your contribution to Ruby is greatly appreciated.
May Ruby be with you.

=end

Also available in: Atom PDF