Ich verwende die Klasse Range
, um eine Reihe von Zeiten darzustellen. Jetzt möchte ich einen Bereich, der nach einer bestimmten Zeit einen beliebigen Punkt repräsentiert.
Ich habe (DateTime.now .. nil)
versucht, aber die Klasse Range
erlaubt keine Objekte verschiedener Klassen als Endpunkte desselben Bereichs. (Der Versuch, ein Range
mit dieser Eigenschaft zu erstellen, führt zu ArgumentError: bad value for range
.)
Gibt es ein Äquivalent von Unendlichkeit für die Zeit, d.h. Time.now + (1.0/0.0)
? Oder gibt es alternativ eine Möglichkeit, die Anforderung Range
zu umgehen, dass die Werte min
und max
derselben Klasse angehören?
Es ist möglich, DateTime::Infinity
class:
Wenn Sie eine unendliche Zeit darstellen möchten, könnten Sie ein Objekt aus einer anderen Klasse verwenden, die Sie selbst erstellen. Implementieren Sie einfach den Matching-Operator und andere Methoden, die Sie verwenden, und dann kann er austauschbar mit Range-Objekten verwendet werden.
%Vor%Tags und Links ruby