9件ヒット
[1-9件を表示]
(0.102秒)
別のキーワード
検索結果
先頭5件
-
Range
# bsearch -> Enumerator (18679.0) -
ブロックの評価結果で範囲内の各要素の大小判定を行い、条件を満たす値を二 分探索(計算量は O(log n))で検索します。要素が見つからない場合は nil を 返します。
ブロックの評価結果で範囲内の各要素の大小判定を行い、条件を満たす値を二
分探索(計算量は O(log n))で検索します。要素が見つからない場合は nil を
返します。
本メソッドはブロックを評価した結果により以下のいずれかのモードで動作し
ます。
* find-minimum モード
* find-any モード
find-minimum モード(特に理由がない限りはこのモードを使う方がいいでしょ
う)では、条件判定の結果を以下のようにする必要があります。
* 求める値がブロックパラメータの値か前の要素の場合: true を返す
* 求める値がブロックパラメータより後の要... -
Range
# reverse _ each -> Enumerator (18643.0) -
逆順に各要素に対してブロックを評価します。
逆順に各要素に対してブロックを評価します。
内部で各要素を保持した配列を作ります。ただし、端点が Integer である場合は、配列を作らないように最適化が行われています。
ブロックを省略した場合は、各要素を逆順に辿る
Enumerator を返します。
@raise TypeError 終端を持たない範囲オブジェクトに対してこのメソッドを呼んだ場合に発生します。
//emlist[例][ruby]{
(1..3).reverse_each # => #<Enumerator: ...>
(1..3).reverse_each { |v| p v }
# => 3
# 2
# ... -
Range
# %(s) -> Enumerator (9679.0) -
範囲内の要素を s おきに繰り返します。
...ブロックを指定しなかった時かつ数値の Range の時は Enumerator::ArithmeticSequence を返します。
@return ブロックを指定しなかったその他の Range の時は Enumerator を返します。(例: String の Range)
//emlist[例][ruby]{
(1..10).step(3) {|v| p v}
# =>......# 1
//}
非数値の Range では、イテレーションに「要素 + s」を使用します。
(文字列またはシンボルの 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 (TypeError)
# step は使用可能
(Time.utc(2024, 12, 25)...Time.utc(2024, 12, 26)).step(60*60*6) { |t| p t }
# => 2024-12-25 00:00:00 UTC
# 2024-12-25 06:00:00 UTC
#... -
Range
# %(s) -> Enumerator :: ArithmeticSequence (9679.0) -
範囲内の要素を s おきに繰り返します。
...ブロックを指定しなかった時かつ数値の Range の時は Enumerator::ArithmeticSequence を返します。
@return ブロックを指定しなかったその他の Range の時は Enumerator を返します。(例: String の Range)
//emlist[例][ruby]{
(1..10).step(3) {|v| p v}
# =>......# 1
//}
非数値の Range では、イテレーションに「要素 + s」を使用します。
(文字列またはシンボルの 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 (TypeError)
# step は使用可能
(Time.utc(2024, 12, 25)...Time.utc(2024, 12, 26)).step(60*60*6) { |t| p t }
# => 2024-12-25 00:00:00 UTC
# 2024-12-25 06:00:00 UTC
#... -
Range
# step(s = 1) -> Enumerator (9679.0) -
範囲内の要素を s おきに繰り返します。
...ブロックを指定しなかった時かつ数値の Range の時は Enumerator::ArithmeticSequence を返します。
@return ブロックを指定しなかったその他の Range の時は Enumerator を返します。(例: String の Range)
//emlist[例][ruby]{
(1..10).step(3) {|v| p v}
# =>......# 1
//}
非数値の Range では、イテレーションに「要素 + s」を使用します。
(文字列またはシンボルの 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 (TypeError)
# step は使用可能
(Time.utc(2024, 12, 25)...Time.utc(2024, 12, 26)).step(60*60*6) { |t| p t }
# => 2024-12-25 00:00:00 UTC
# 2024-12-25 06:00:00 UTC
#... -
Range
# step(s = 1) -> Enumerator :: ArithmeticSequence (9679.0) -
範囲内の要素を s おきに繰り返します。
...ブロックを指定しなかった時かつ数値の Range の時は Enumerator::ArithmeticSequence を返します。
@return ブロックを指定しなかったその他の Range の時は Enumerator を返します。(例: String の Range)
//emlist[例][ruby]{
(1..10).step(3) {|v| p v}
# =>......# 1
//}
非数値の Range では、イテレーションに「要素 + s」を使用します。
(文字列またはシンボルの 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 (TypeError)
# step は使用可能
(Time.utc(2024, 12, 25)...Time.utc(2024, 12, 26)).step(60*60*6) { |t| p t }
# => 2024-12-25 00:00:00 UTC
# 2024-12-25 06:00:00 UTC
#... -
Range
# each -> Enumerator (9643.0) -
範囲内の要素に対して繰り返します。
...範囲内の要素に対して繰り返します。
Range#each は各要素の succ メソッドを使用してイテレーションするようになりました。
@raise TypeError succ メソッドを持たないクラスの範囲オブジェクトに対してこのメソッドを呼んだ場... -
Range
# size -> Integer | Float :: INFINITY | nil (9643.0) -
範囲内の要素数を返します。
範囲内の要素数を返します。
始端が整数でない場合は、始端が succ メソッドを持つ場合は nil を返し、始端が succ メソッドを持たない場合は TypeError が発生します。
@raise TypeError self がイテレート可能でない場合に発生します。
//emlist[例][ruby]{
(10..20).size # => 11
("a".."z").size # => nil
(1..).size # => Infinity
(-Float::INFINITY..Float::INFINITY).size # => can't iterat... -
Range
# ===(obj) -> bool (9169.0) -
始端と終端の中に obj があるとき、true を返します。 そうでないとき、false を返します。
...始端と終端の中に obj があるとき、true を返します。
そうでないとき、false を返します。
Range#=== は主に case 式での比較に用いられます。
//emlist[例][ruby]{
p (0...50) === 79 #=> false
p (60...80) === 79 #=> true
case 79
when 0...60 then puts......で呼んでいました。
しかし、2.6 以降では、(文字列を除いて) Range#cover? と同様の処理をするように切り替わりました。
ただし、=== は、Range#cover? のように Range オブジェクトを引数にはとる設計はありません。
//emlist[例][ru......> true
# 2.5 以前は、=== は、include? と同じく比較できず false を返していました。
//}
2.7 以降の === は、文字列も Range#cover? と同様の処理をするようになりました。
//emlist[例][ruby]{
p ('a'..'z').include? 'at' #=> false
p ('a'..'z').cover? 'at'...