本文簡要介紹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?。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。