From: Kenta Murata Date: 2011-04-24T22:43:23+09:00 Subject: [ruby-dev:43430] [Ruby 1.9 - Feature #4605] Random#randとKernel#randでRangeを扱えるように Issue #4605 has been updated by Kenta Murata. sora さんとは独立に私も修正案を作りました。参考にしてください。 https://gist.github.com/939556 Random.rand は Random::DEFAULT.rand と同じものに変更してあります。 ---------------------------------------- Feature #4605: Random#randとKernel#randでRangeを扱えるように http://redmine.ruby-lang.org/issues/4605 Author: Yuya Yaguchi Status: Open Priority: Normal Assignee: Category: core Target version: Random#randとKernel#randで引数としてRangeを扱えるようにしてほしいです。 Random#randは引数にInteger, Float, Rangeを扱うことができるのに対し、Kernel#rand, Random.randではIntegerしか扱うことができません。 rand 10 #=> 7 rand 7.5 #=> 4 rand 10..20 #=> TypeError: can't convert Range into Integer Random.rand 10 #=> 8 Random.rand 7.5 #=> 3 Random.rand 10..20 #=> TypeError: can't convert Range into Integer Random.new.rand 10 #=> 8 Random.new.rand 7.5 #=> 6.258043599450456 Random.new.rand 10..20 #=> 20 Floatの扱いを変更すると互換性に問題がでてしまいますが、 Rangeを扱えるようにすることでは問題は少ないと思われますし rand(10..20)のように記述できることは便利です。 -- http://redmine.ruby-lang.org