本文简要介绍ruby语言中 Range.cover?
的用法。
用法
cover?(object) → true or false
cover?(range) → true or false
如果给定的参数在 self
内,则返回 true
,否则返回 false
。
使用非范围参数 object
,使用 <=
和 <
进行评估。
对于包含结束值 (#exclude_end? == false
) 的范围 self
,计算如下:
self.begin <= object <= self.end
例子:
r = (1..4)
r.cover?(1) # => true
r.cover?(4) # => true
r.cover?(0) # => false
r.cover?(5) # => false
r.cover?('foo') # => false
r = ('a'..'d')
r.cover?('a') # => true
r.cover?('d') # => true
r.cover?(' ') # => false
r.cover?('e') # => false
r.cover?(0) # => false
对于排除结束值 (#exclude_end? == true
) 的范围 r
,计算如下:
r.begin <= object < r.end
例子:
r = (1...4)
r.cover?(1) # => true
r.cover?(3) # => true
r.cover?(0) # => false
r.cover?(4) # => false
r.cover?('foo') # => false
r = ('a'...'d')
r.cover?('a') # => true
r.cover?('c') # => true
r.cover?(' ') # => false
r.cover?('d') # => false
r.cover?(0) # => false
使用范围参数 range
,比较 self
和 range
的第一个和最后一个元素:
r = (1..4)
r.cover?(1..4) # => true
r.cover?(0..4) # => false
r.cover?(1..5) # => false
r.cover?('a'..'d') # => false
r = (1...4)
r.cover?(1..3) # => true
r.cover?(1..4) # => false
如果开始和结束是数字, cover?
的行为类似于 include?
(1..3).cover?(1.5) # => true
(1..3).include?(1.5) # => true
但是当不是数字时,这两种方法可能会有所不同:
('a'..'d').cover?('cc') # => true
('a'..'d').include?('cc') # => false
如果出现以下任一情况,则返回 false
:
-
self
的开始值大于其结束值。 -
对
<=>
的内部调用返回nil
;也就是说,操作数不可比较。
相关: Range#include?
。
相关用法
- Ruby Range.count用法及代码示例
- Ruby Range.end用法及代码示例
- Ruby Range.size用法及代码示例
- Ruby Range.last用法及代码示例
- Ruby Range.new用法及代码示例
- Ruby Range.min用法及代码示例
- Ruby Range.max用法及代码示例
- Ruby Range.exclude_end?用法及代码示例
- Ruby Range.self ==用法及代码示例
- Ruby Range.member?用法及代码示例
- Ruby Range.eql?用法及代码示例
- Ruby Range.begin用法及代码示例
- Ruby Range.step用法及代码示例
- Ruby Range.first用法及代码示例
- Ruby Range.self ===用法及代码示例
- Ruby Range.minmax用法及代码示例
- Ruby Range.each用法及代码示例
- Ruby Range.%用法及代码示例
- Ruby Range.entries用法及代码示例
- Ruby Range.to_s用法及代码示例
- Ruby Range.to_a用法及代码示例
- Ruby Range.include?用法及代码示例
- Ruby Range.inspect用法及代码示例
- Ruby Range new()用法及代码示例
- Ruby Range last()用法及代码示例
注:本文由纯净天空筛选整理自ruby-lang.org大神的英文原创作品 Range.cover?。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。