鉴于没有显式转换Time
就无法比较对象Fixnum
:
0 <= Time.now # => ArgumentError: comparison of Fixnum with Time failed
Time.now <= 10000000000 # => ArgumentError: comparison of Time with 10000000000 failed
cover?(obj)
→true
或false
true
如果在范围的和obj
之间,则返回。begin
end
这测试
begin <= obj <= end
什么时候exclude_end?
是false
和begin <= obj < end
什么时候exclude_end?
是true
。
我预计:
(0...10000000000).cover?(Time.now) # => false
引发异常而不是默默地返回false
。为什么它不引发异常?
可以理解的是,通过显式转换,比较有效:
(0...10000000000).cover?(Time.now.to_i) # => true