From: zn@... Date: 2018-06-13T15:45:18+00:00 Subject: [ruby-dev:50574] [Ruby trunk Bug#14845] Endless Range with nil Issue #14845 has been updated by znz (Kazuhiro NISHIYAMA). 別チケットにした方が良いのかもしれませんが、関連するのでここにコメントしておきます。 `Range.new(1)` のように終端を省略できるようにするのはどうでしょうか? endless range の時は exclude_end を指定できても違いがないようなので、現状では問題がなさそうに思います。 beginless などの可能性を考えるとキーワード引数も受け付けるようにして、 `Range.new(begin: 1, endless: true)` や `Range.new(begin: 1, end: 9, exclude_end: true)` のようにかけると良いかもしれません。 ---------------------------------------- Bug #14845: Endless Range with nil https://bugs.ruby-lang.org/issues/14845#change-72487 * Author: igaiga (Kuniaki IGARASHI) * Status: Assigned * Priority: Normal * Assignee: matz (Yukihiro Matsumoto) * Target version: * ruby -v: 2.6.0preview2 * Backport: 2.3: UNKNOWN, 2.4: UNKNOWN, 2.5: UNKNOWN ---------------------------------------- endless Rangeで次のケースで困ることがあります。 - 1..nilはendless Rangeになる - endless Rangeはto_aすると返ってこなくなる - 1..変数 のケースで意図せずendless Rangeになる可能性があり、そのときto_aすると返ってこなくなる Ruby 2.5.1 では 1..nil はArgumentError (bad value for range) になります。 たとえば、 1..nil がendless Rangeではなくエラーになればこの問題は解決します。 ### Info - An endless range `(1..)` : https://bugs.ruby-lang.org/issues/12912 - twitter での話 : https://twitter.com/igaiga555/status/1006715631796813824 ---Files-------------------------------- range_to_a.patch (1.56 KB) -- https://bugs.ruby-lang.org/