From: "shouichi (Shouichi KAMIYA) via ruby-core" <ruby-core@...>
Date: 2023-07-12T07:40:25+00:00
Subject: [ruby-core:114142] [Ruby master Feature#19698] Need an idiomatic way to define an empty range

Issue #19698 has been updated by shouichi (Shouichi KAMIYA).





> What is your ���intention��� to use an ���empty��� range?



In a system I'm working on, I need to represent an empty date range. We can choose two arbitrary dates d1 and d2 where d1 > d2, then use d2 as a beginning and d1 as an end of a range. For example,



```

EMPTY_RANGE = Date.new(2000, 1, 1)..Date.new(1900, 1, 1)

```



But I don't think this communicates well because d1 and d2 are too arbitrary and those concrete dates only create noises when reading code.



> And what do you think ���idiomatic��� way is?



One idea is to add a constant e.g., `Range::EMPTY` just like `Float::EPSILON`.





----------------------------------------

Feature #19698: Need an idiomatic way to define an empty range

https://bugs.ruby-lang.org/issues/19698#change-103821



* Author: shouichi (Shouichi KAMIYA)

* Status: Open

* Priority: Normal

----------------------------------------

It seems there is no idiomatic way to define an empty range. We can define empty ranges in several ways such as



``` ruby

irb(main):001:0> (0...0).none?

=> true

irb(main):002:0> (1...-1).none?

=> true

```



I think the above examples do not communicate the intention well.







-- 

https://bugs.ruby-lang.org/

 ______________________________________________
 ruby-core mailing list -- ruby-core@ml.ruby-lang.org
 To unsubscribe send an email to ruby-core-leave@ml.ruby-lang.org
 ruby-core info -- https://ml.ruby-lang.org/mailman3/postorius/lists/ruby-core.ml.ruby-lang.org/