Bug #3027
closedRandom#rand(nil)
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
Updated by nobu (Nobuyoshi Nakada) over 14 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
Updated by nobu (Nobuyoshi Nakada) over 14 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