種類
ライブラリ
- ビルトイン (884)
- csv (36)
- etc (744)
- ipaddr (12)
- matrix (21)
-
net
/ http (115) -
net
/ imap (92) - openssl (60)
-
rexml
/ document (36) - socket (24)
- strscan (24)
-
webrick
/ httpservlet / filehandler (12) -
webrick
/ httpstatus (492) -
webrick
/ httputils (12) - win32ole (12)
クラス
- Array (177)
-
CSV
:: Table (36) - Complex (12)
- IPAddr (12)
- Integer (42)
- MatchData (48)
- Matrix (7)
-
Net
:: IMAP (92) -
OpenSSL
:: BN (48) -
REXML
:: Parent (36) - Range (199)
- Socket (12)
- String (286)
- StringScanner (24)
- Struct (12)
- Symbol (24)
- Vector (14)
-
WEBrick
:: HTTPServlet :: DefaultFileHandler (12) -
WIN32OLE
_ PARAM (12)
モジュール
- Comparable (12)
- Etc (744)
- Kernel (60)
-
Net
:: HTTPHeader (96) -
Socket
:: Constants (12) -
WEBrick
:: HTTPStatus (480) -
WEBrick
:: HTTPUtils (12)
キーワード
- % (14)
-
1
. 6 . 8から1 . 8 . 0への変更点(まとめ) (12) - == (12)
- === (12)
- HTTPRangeNotSatisfiable (7)
- HTTPRequestedRangeNotSatisfiable (12)
-
IP
_ PORTRANGE (24) -
NEWS for Ruby 2
. 5 . 0 (8) -
NEWS for Ruby 2
. 7 . 0 (6) -
NEWS for Ruby 3
. 0 . 0 (5) -
RC
_ ACCEPTED (12) -
RC
_ BAD _ GATEWAY (12) -
RC
_ BAD _ REQUEST (12) -
RC
_ CONFLICT (12) -
RC
_ CONTINUE (12) -
RC
_ CREATED (12) -
RC
_ EXPECTATION _ FAILED (12) -
RC
_ FORBIDDEN (12) -
RC
_ FOUND (12) -
RC
_ GATEWAY _ TIMEOUT (12) -
RC
_ GONE (12) -
RC
_ HTTP _ VERSION _ NOT _ SUPPORTED (12) -
RC
_ INTERNAL _ SERVER _ ERROR (12) -
RC
_ LENGTH _ REQUIRED (12) -
RC
_ METHOD _ NOT _ ALLOWED (12) -
RC
_ MOVED _ PERMANENTLY (12) -
RC
_ MULTIPLE _ CHOICES (12) -
RC
_ NON _ AUTHORITATIVE _ INFORMATION (12) -
RC
_ NOT _ ACCEPTABLE (12) -
RC
_ NOT _ FOUND (12) -
RC
_ NOT _ IMPLEMENTED (12) -
RC
_ NOT _ MODIFIED (12) -
RC
_ NO _ CONTENT (12) -
RC
_ OK (12) -
RC
_ PARTIAL _ CONTENT (12) -
RC
_ PAYMENT _ REQUIRED (12) -
RC
_ PRECONDITION _ FAILED (12) -
RC
_ PROXY _ AUTHENTICATION _ REQUIRED (12) -
RC
_ REQUEST _ ENTITY _ TOO _ LARGE (12) -
RC
_ REQUEST _ RANGE _ NOT _ SATISFIABLE (12) -
RC
_ REQUEST _ TIMEOUT (12) -
RC
_ REQUEST _ URI _ TOO _ LARGE (12) -
RC
_ RESET _ CONTENT (12) -
RC
_ SEE _ OTHER (12) -
RC
_ SERVICE _ UNAVAILABLE (12) -
RC
_ SWITCHING _ PROTOCOLS (12) -
RC
_ TEMPORARY _ REDIRECT (12) -
RC
_ UNAUTHORIZED (12) -
RC
_ UNSUPPORTED _ MEDIA _ TYPE (12) -
RC
_ USE _ PROXY (12) - Random (12)
- RequestRangeNotSatisfiable (12)
- Rubyで使われる記号の意味(正規表現の複雑な記号は除く) (12)
-
SC
_ 2 _ PBS (12) -
SC
_ 2 _ PBS _ ACCOUNTING (12) -
SC
_ 2 _ PBS _ CHECKPOINT (12) -
SC
_ 2 _ PBS _ LOCATE (12) -
SC
_ 2 _ PBS _ MESSAGE (12) -
SC
_ 2 _ PBS _ TRACK (12) -
SC
_ 2 _ UPE (12) -
SC
_ AIO _ PRIO _ DELTA _ MAX (12) -
SC
_ AVPHYS _ PAGES (12) -
SC
_ CPUSET _ SIZE (12) -
SC
_ CPUTIME (12) -
SC
_ EXPR _ NEST _ MAX (12) -
SC
_ GETPW _ R _ SIZE _ MAX (12) -
SC
_ IPV6 (12) -
SC
_ MAPPED _ FILES (12) -
SC
_ MEMORY _ PROTECTION (12) -
SC
_ MESSAGE _ PASSING (12) -
SC
_ MQ _ OPEN _ MAX (12) -
SC
_ MQ _ PRIO _ MAX (12) -
SC
_ NGROUPS _ MAX (12) -
SC
_ NPROCESSORS _ CONF (12) -
SC
_ NPROCESSORS _ ONLN (12) -
SC
_ OPEN _ MAX (12) -
SC
_ PAGESIZE (12) -
SC
_ PAGE _ SIZE (12) -
SC
_ PHYS _ PAGES (12) -
SC
_ PRIORITIZED _ IO (12) -
SC
_ PRIORITY _ SCHEDULING (12) -
SC
_ REGEXP (12) -
SC
_ RE _ DUP _ MAX (12) -
SC
_ SEMAPHORES (12) -
SC
_ SPAWN (12) -
SC
_ SPIN _ LOCKS (12) -
SC
_ SPORADIC _ SERVER (12) -
SC
_ SS _ REPL _ MAX (12) -
SC
_ SYMLOOP _ MAX (12) -
SC
_ THREAD _ CPUTIME (12) -
SC
_ THREAD _ PRIORITY _ SCHEDULING (12) -
SC
_ THREAD _ PRIO _ INHERIT (12) -
SC
_ THREAD _ PRIO _ PROTECT (12) -
SC
_ THREAD _ PROCESS _ SHARED (12) -
SC
_ THREAD _ ROBUST _ PRIO _ INHERIT (12) -
SC
_ THREAD _ ROBUST _ PRIO _ PROTECT (12) -
SC
_ THREAD _ SPORADIC _ SERVER (12) -
SC
_ TYPED _ MEMORY _ OBJECTS (12) -
SC
_ V6 _ ILP32 _ OFF32 (12) -
SC
_ V6 _ ILP32 _ OFFBIG (12) -
SC
_ V6 _ LP64 _ OFF64 (12) -
SC
_ V6 _ LPBIG _ OFFBIG (12) -
SC
_ V7 _ ILP32 _ OFF32 (12) -
SC
_ V7 _ ILP32 _ OFFBIG (12) -
SC
_ V7 _ LP64 _ OFF64 (12) -
SC
_ V7 _ LPBIG _ OFFBIG (12) -
SC
_ XOPEN _ CRYPT (12) -
SC
_ XOPEN _ ENH _ I18N (12) -
SC
_ XOPEN _ REALTIME (12) -
SC
_ XOPEN _ REALTIME _ THREADS (12) -
SC
_ XOPEN _ SHM (12) -
SC
_ XOPEN _ STREAMS (12) -
SC
_ XOPEN _ UNIX (12) -
SC
_ XOPEN _ UUCP (12) -
SC
_ XOPEN _ VERSION (12) - [] (186)
- []= (177)
- begin (12)
- bytesplice (10)
- caller (36)
-
caller
_ locations (24) - chr (24)
- clamp (24)
-
content
_ range (12) - copy (12)
- cover? (14)
- entries (7)
- eql? (12)
- fetch (12)
- fill (72)
- first (24)
- hash (12)
- include? (12)
- inspect (12)
- member? (12)
- move (10)
- next (12)
-
ole
_ type _ detail (12) - overlap? (2)
- pack (21)
- pack テンプレート文字列 (12)
-
parse
_ range _ header (12) - pointer= (12)
- pos= (12)
-
prepare
_ range (12) - profile (6)
-
pseudo
_ rand (12) -
pseudo
_ rand _ range (12) - rand (12)
-
rand
_ range (12) - range (12)
- range= (24)
-
range
_ length (12) -
range
_ op (12) -
reverse
_ each (4) -
ruby 1
. 8 . 3 feature (12) -
set
_ range (36) - slice (120)
- step (31)
- store (12)
- succ (12)
-
to
_ a (7) -
to
_ f (12) -
to
_ range (12) -
uid
_ copy (12) -
uid
_ fetch (12) -
uid
_ move (10) -
uid
_ store (12) - unpack (12)
-
values
_ at (24) - yaml (12)
- リテラル (12)
- 演算子式 (12)
検索結果
先頭5件
-
Range (38210.0)
-
範囲オブジェクトのクラス。 範囲オブジェクトは文字どおり何らかの意味での範囲を表します。数の範囲はもちろん、 日付の範囲や、「"a" から "z" まで」といった文字列の範囲を表すこともできます。
...囲オブジェクトは、Range.new を用いるほか、範囲演算子(`..' または `...')を
用いた d:spec/operator#range で生成できます。
いずれの方法でも始端と終端を与えます。
//emlist[範囲オブジェクトの例][ruby]{
Range.new(1, 5) # 1 以上 5 以......いうことがあります。
//emlist[値が範囲に含まれるかどうかを判定][ruby]{
p (1..5).cover?(6) # => false
p (1..5).cover?(5) # => true
p (1...5).cover?(5) # => false
//}
Range#cover? メソッドでの判定には演算子 <=> が使われます。
当然、始端と終端......i| p i }
# => 3
# 4
# 5
(3...5).each{ |i| p i }
# => 3
# 4
//}
繰り返しの範囲を表す範囲オブジェクトは、始端が「次の値」を返す succ メソッドを
持たなければなりません。
Range クラスには Enumerable が include してあるので,Range#e......とができるようになりました。
//emlist[終端を持たない範囲オブジェクト][ruby]{
p Range.new(1, nil) # 1 以上(上限無し)を表す
p(1..nil) # 同上
p(1..) # 同上(略した書き方)
//}
==== 機能
範囲オブジェクトは範囲......とができるようになりました。
//emlist[終端を持たない範囲オブジェクト][ruby]{
p Range.new(1, nil) # 1 以上(上限無し)を表す
p(1..nil) # 同上
p(1..) # 同上(略した書き方)
//}
また、Ruby 2.7.0 では始端に nil を与......ともできるようになりました。
//emlist[始端を持たない範囲オブジェクト][ruby]{
p Range.new(nil, 5) # 5 以下(下限無し)を表す
p(nil..5) # 同上
p(..5) # 同上(略した書き方)
//}
始端も終端も持たない範囲オブジェ... -
Range
# overlap?(range) -> bool (27283.0) -
self と range に重なりがある場合は true を、そうでない場合は false を返します。
...self と range に重なりがある場合は true を、そうでない場合は false を返します。
@param range self と重なりがあるかどうかを調べたい Range オブジェクトを指定します。
@raise TypeError 引数に Range でないオブジェクトを指定した......場合に発生します。
@see Range#cover?
//emlist[例][ruby]{
(0..2).overlap?(1..3) #=> true
(0..2).overlap?(3..4) #=> false
(0..).overlap?(..0) #=> true
(0..).overlap?(...0) #=> false
//}
self の端点と range の端点が比較可能でない(<=> メソッドが nil を返す)......//emlist[比較可能でない例][ruby]{
(1..3).overlap?('a'..'d') #=> false
//}
self または range が空である場合、false を返します。
ここで、Range が空であるとは、
* 始端が終端より大きい
* Range#exclude_end? が true であり、始端と終端が等... -
Range
# step(s = 1) -> Enumerator (27136.0) -
範囲内の要素を s おきに繰り返します。
...繰り返します。
@param s 各ステップの大きさを数値で指定します。負の数を指定することもできます。
@return ブロックを指定した時は self を返します。
@return ブロックを指定しなかった時かつ数値の Range の時は Enumerator::Arith......を指定しなかったその他の Range の時は Enumerator を返します。(例: String の Range)
//emlist[例][ruby]{
(1..10).step(3) {|v| p v}
# => 1
# 4
# 7
# 10
("a".."f").step(2) {|v| p v}
# => "a"
# "c"
# "e"
(10..0).step(-3) {|v| p v}
# => 10
# 7
# 4
# 1... -
Range
# step(s = 1) {|item| . . . } -> self (27136.0) -
範囲内の要素を s おきに繰り返します。
...繰り返します。
@param s 各ステップの大きさを数値で指定します。負の数を指定することもできます。
@return ブロックを指定した時は self を返します。
@return ブロックを指定しなかった時かつ数値の Range の時は Enumerator::Arith......を指定しなかったその他の Range の時は Enumerator を返します。(例: String の Range)
//emlist[例][ruby]{
(1..10).step(3) {|v| p v}
# => 1
# 4
# 7
# 10
("a".."f").step(2) {|v| p v}
# => "a"
# "c"
# "e"
(10..0).step(-3) {|v| p v}
# => 10
# 7
# 4
# 1... -
Range
# inspect -> String (27106.0) -
self を文字列に変換します(始端と終端のオブジェクトは #inspect メソッド で文字列に変換されます)。
...self を文字列に変換します(始端と終端のオブジェクトは #inspect メソッド
で文字列に変換されます)。
@see Range#to_s
//emlist[例][ruby]{
(1..5).inspect # => "1..5"
("1".."5").inspect # => "\"1\"..\"5\""
//}... -
pack テンプレート文字列 (26156.0)
-
pack テンプレート文字列
...pack テンプレート文字列
以下にあげるものは、Array#pack、String#unpack
のテンプレート文字の一覧です。テンプレート文字は後に「長さ」を表す数字
を続けることができます。「長さ」の代わりに`*'とすることで「残り全て」......ort
i,i!: signed int
I,I!: unsigned int
l!: signed long
L!: unsigned long
q!: signed long long
Q!: unsigned long long
j,j!: intptr_t
J,J!: uintptr_t
//}
: エンディアン依存、整数サイズ非依存 (C99 の stdint.h にある厳密な幅を持つ整数型に適切)
//emlist......pack("U") # => "\u0001"
[0x7f].pack("U") # => "\u007F"
[0x80].pack("U") # => "\u0080"
[0x7fffffff].pack("U") # => "\xFD\xBF\xBF\xBF\xBF\xBF"
[0x80000000].pack("U") # => Range......pack テンプレート文字列
以下にあげるものは、Array#pack、String#unpack、String#unpack1
のテンプレート文字の一覧です。テンプレート文字は後に「長さ」を表す数字
を続けることができます。「長さ」の代わりに`*'とすることで... -
profile (26006.0)
-
Ruby プログラムのためのプロファイラです。 プロファイラとは効率改善のための調査に用いられるツールのことです。 profile ライブラリは各メソッドの実行時間に関する統計を出力します。
...。
profile ライブラリは各メソッドの実行時間に関する統計を出力します。
profile はそれ自身がオーバーヘッドになる
ためメソッド呼び出しあたりの処理時間がかなり遅くなります。
=== 使い方
以下のように、ruby に -r profi......le オプションを付けて実行します。
$ ruby -r profile foo.rb
foo.rb の実行が終わると標準エラー出力にプロファイルが出力されます。
プロファイルは各メソッドの実行時間に関する統計からなりますが、
この時間には大きく......call ms/call name
33.87 1.49 1.49 11 135.65 214.49 Fixnum#step
31.38 2.88 1.38 2410 0.57 0.57 Array#[]=
27.84 4.10 1.23 2 613.28 2070.31 Range#each
4.26 4.29 0.19 1 187.50 234.38 Array#join
1.06... -
Range
# step(s = 1) -> Enumerator (24178.0) -
範囲内の要素を s おきに繰り返します。
...s おきに繰り返します。
@param s 次のステップへ遷移するたびに加算されるものを指定します。
@return ブロックを指定した時は self を返します。
@return ブロックを指定しなかった時かつ数値の Range の時は Enumerator::ArithmeticSequ......他の Range の時は Enumerator を返します。(例: String の Range)
//emlist[例][ruby]{
(1..10).step(3) {|v| p v}
# => 1
# 4
# 7
# 10
("a".."f").step(2) {|v| p v}
# => "a"
# "c"
# "e"
(10..0).step(-3) {|v| p v}
# => 10
# 7
# 4
# 1
//}
非数値の Range で......ルの Range で s に数値を指定した場合を除きます)
//emlist[数値以外の Range に対する例][ruby]{
# Time の Range は each でイテレートできない
(Time.utc(2024, 12, 25)...Time.utc(2024, 12, 26)).each { |t| p t }
# => 'Range#each': can't iterate from Time (TypeErro... -
Range
# step(s = 1) -> Enumerator :: ArithmeticSequence (24178.0) -
範囲内の要素を s おきに繰り返します。
...s おきに繰り返します。
@param s 次のステップへ遷移するたびに加算されるものを指定します。
@return ブロックを指定した時は self を返します。
@return ブロックを指定しなかった時かつ数値の Range の時は Enumerator::ArithmeticSequ......他の Range の時は Enumerator を返します。(例: String の Range)
//emlist[例][ruby]{
(1..10).step(3) {|v| p v}
# => 1
# 4
# 7
# 10
("a".."f").step(2) {|v| p v}
# => "a"
# "c"
# "e"
(10..0).step(-3) {|v| p v}
# => 10
# 7
# 4
# 1
//}
非数値の Range で......ルの Range で s に数値を指定した場合を除きます)
//emlist[数値以外の Range に対する例][ruby]{
# Time の Range は each でイテレートできない
(Time.utc(2024, 12, 25)...Time.utc(2024, 12, 26)).each { |t| p t }
# => 'Range#each': can't iterate from Time (TypeErro... -
Range
# step(s = 1) {|item| . . . } -> self (24178.0) -
範囲内の要素を s おきに繰り返します。
...s おきに繰り返します。
@param s 次のステップへ遷移するたびに加算されるものを指定します。
@return ブロックを指定した時は self を返します。
@return ブロックを指定しなかった時かつ数値の Range の時は Enumerator::ArithmeticSequ......他の Range の時は Enumerator を返します。(例: String の Range)
//emlist[例][ruby]{
(1..10).step(3) {|v| p v}
# => 1
# 4
# 7
# 10
("a".."f").step(2) {|v| p v}
# => "a"
# "c"
# "e"
(10..0).step(-3) {|v| p v}
# => 10
# 7
# 4
# 1
//}
非数値の Range で......ルの Range で s に数値を指定した場合を除きます)
//emlist[数値以外の Range に対する例][ruby]{
# Time の Range は each でイテレートできない
(Time.utc(2024, 12, 25)...Time.utc(2024, 12, 26)).each { |t| p t }
# => 'Range#each': can't iterate from Time (TypeErro... -
Range
# step(s = 1) -> Enumerator (24136.0) -
範囲内の要素を s おきに繰り返します。
...繰り返します。
@param s 各ステップの大きさを数値で指定します。負の数を指定することもできます。
@return ブロックを指定した時は self を返します。
@return ブロックを指定しなかった時かつ数値の Range の時は Enumerator::Arith......を指定しなかったその他の Range の時は Enumerator を返します。(例: String の Range)
//emlist[例][ruby]{
(1..10).step(3) {|v| p v}
# => 1
# 4
# 7
# 10
("a".."f").step(2) {|v| p v}
# => "a"
# "c"
# "e"
(10..0).step(-3) {|v| p v}
# => 10
# 7
# 4
# 1... -
Range
# step(s = 1) -> Enumerator :: ArithmeticSequence (24136.0) -
範囲内の要素を s おきに繰り返します。
...繰り返します。
@param s 各ステップの大きさを数値で指定します。負の数を指定することもできます。
@return ブロックを指定した時は self を返します。
@return ブロックを指定しなかった時かつ数値の Range の時は Enumerator::Arith......を指定しなかったその他の Range の時は Enumerator を返します。(例: String の Range)
//emlist[例][ruby]{
(1..10).step(3) {|v| p v}
# => 1
# 4
# 7
# 10
("a".."f").step(2) {|v| p v}
# => "a"
# "c"
# "e"
(10..0).step(-3) {|v| p v}
# => 10
# 7
# 4
# 1... -
Range
# step(s = 1) {|item| . . . } -> self (24136.0) -
範囲内の要素を s おきに繰り返します。
...繰り返します。
@param s 各ステップの大きさを数値で指定します。負の数を指定することもできます。
@return ブロックを指定した時は self を返します。
@return ブロックを指定しなかった時かつ数値の Range の時は Enumerator::Arith......を指定しなかったその他の Range の時は Enumerator を返します。(例: String の Range)
//emlist[例][ruby]{
(1..10).step(3) {|v| p v}
# => 1
# 4
# 7
# 10
("a".."f").step(2) {|v| p v}
# => "a"
# "c"
# "e"
(10..0).step(-3) {|v| p v}
# => 10
# 7
# 4
# 1... -
Range
# cover?(range) -> bool (21208.0) -
2.6 以降の cover? は、Range#include? や Range#=== と異なり、 引数に Range オブジェクトを指定して比較できます。
...over? は、Range#include? や Range#=== と異なり、
引数に Range オブジェクトを指定して比較できます。
引数が Range オブジェクトの場合、引数の範囲が self の範囲に含まれる時に true を返します。
@param range 比較対象の Range クラス......スタンスを指定します。
//emlist[引数が Range の例][ruby]{
(1..5).cover?(2..3) #=> true
(1..5).cover?(0..6) #=> false
(1..5).cover?(1...6) #=> true
//}
「(a..b).cover?(c...d)」のように終端を含まない Range オブジェクトが引数に渡されており、......値ではない(つまり引数の Range の終端を
求めるために succ メソッドの呼び出しが必要な)場合、パフォーマンスの問題が起きる可能性があります。
//emlist[パフォーマンス上の問題が起きる例][ruby]{
p ('aaaaa'..'zzzzy').cover?('aaaaa'.... -
Range
# ===(obj) -> bool (21096.0) -
始端と終端の中に obj があるとき、true を返します。 そうでないとき、false を返します。
...false を返します。
Range#=== は主に case 式での比較に用いられます。
//emlist[例][ruby]{
p (0...50) === 79 #=> false
p (60...80) === 79 #=> true
case 79
when 0...60 then puts "low"
when 60...80 then puts "medium" # => medium
when 80..100 then puts "high"
end
//}
2.5......は、(文字列を除いて) Range#cover? と同様の処理をするように切り替わりました。
ただし、=== は、Range#cover? のように Range オブジェクトを引数にはとる設計はありません。
//emlist[例][ruby]{
require 'date'
p (Date.today - 100...Date.today +......alse
p (Date.today - 100...Date.today + 100).cover?(DateTime.now) #=> true
p (Date.today - 100...Date.today + 100) === DateTime.now #=> true
# 2.5 以前は、=== は、include? と同じく比較できず false を返していました。
//}
2.7 以降の === は、文字列も Range#co... -
Range
# %(s) -> Enumerator (21078.0) -
範囲内の要素を s おきに繰り返します。
...s おきに繰り返します。
@param s 次のステップへ遷移するたびに加算されるものを指定します。
@return ブロックを指定した時は self を返します。
@return ブロックを指定しなかった時かつ数値の Range の時は Enumerator::ArithmeticSequ......他の Range の時は Enumerator を返します。(例: String の Range)
//emlist[例][ruby]{
(1..10).step(3) {|v| p v}
# => 1
# 4
# 7
# 10
("a".."f").step(2) {|v| p v}
# => "a"
# "c"
# "e"
(10..0).step(-3) {|v| p v}
# => 10
# 7
# 4
# 1
//}
非数値の Range で......ルの Range で s に数値を指定した場合を除きます)
//emlist[数値以外の Range に対する例][ruby]{
# Time の Range は each でイテレートできない
(Time.utc(2024, 12, 25)...Time.utc(2024, 12, 26)).each { |t| p t }
# => 'Range#each': can't iterate from Time (TypeErro... -
Range
# %(s) -> Enumerator :: ArithmeticSequence (21078.0) -
範囲内の要素を s おきに繰り返します。
...s おきに繰り返します。
@param s 次のステップへ遷移するたびに加算されるものを指定します。
@return ブロックを指定した時は self を返します。
@return ブロックを指定しなかった時かつ数値の Range の時は Enumerator::ArithmeticSequ......他の Range の時は Enumerator を返します。(例: String の Range)
//emlist[例][ruby]{
(1..10).step(3) {|v| p v}
# => 1
# 4
# 7
# 10
("a".."f").step(2) {|v| p v}
# => "a"
# "c"
# "e"
(10..0).step(-3) {|v| p v}
# => 10
# 7
# 4
# 1
//}
非数値の Range で......ルの Range で s に数値を指定した場合を除きます)
//emlist[数値以外の Range に対する例][ruby]{
# Time の Range は each でイテレートできない
(Time.utc(2024, 12, 25)...Time.utc(2024, 12, 26)).each { |t| p t }
# => 'Range#each': can't iterate from Time (TypeErro... -
Range
# ===(obj) -> bool (21072.0) -
始端と終端の中に obj があるとき、true を返します。 そうでないとき、false を返します。
...false を返します。
Range#=== は主に case 式での比較に用いられます。
//emlist[例][ruby]{
p (0...50) === 79 #=> false
p (60...80) === 79 #=> true
case 79
when 0...60 then puts "low"
when 60...80 then puts "medium" # => medium
when 80..100 then puts "high"
end
//}
2.5......は、(文字列を除いて) Range#cover? と同様の処理をするように切り替わりました。
ただし、=== は、Range#cover? のように Range オブジェクトを引数にはとる設計はありません。
//emlist[例][ruby]{
require 'date'
p (Date.today - 100...Date.today +......> false
p (Date.today - 100...Date.today + 100).cover?(DateTime.now) #=> true
p (Date.today - 100...Date.today + 100) === DateTime.now #=> true
# 2.5 以前は、=== は、include? と同じく比較できず false を返していました。
//}
@see d:spec/control#case
@see Range#inclu... -
Range
# ==(other) -> bool (21056.0) -
指定された other が Range クラスのインスタンスであり、 始端と終端が == メソッドで比較して等しく、Range#exclude_end? が同じ場合に true を返します。そうでない場合に false を返します。
...指定された other が Range クラスのインスタンスであり、
始端と終端が == メソッドで比較して等しく、Range#exclude_end? が同じ場合に
true を返します。そうでない場合に false を返します。
@param other 自身と比較したいオブジェ......クトを指定します。
//emlist[例][ruby]{
p (1..2) == (1..2) # => true
p (1..2) == (1...2) # => false
p (1..2) == Range.new(1.0, 2.0) # => true
//}...