別のキーワード
クラス
モジュール
- Kernel (77)
-
Net
:: HTTPHeader (33)
キーワード
- % (12)
-
1
. 6 . 8から1 . 8 . 0への変更点(まとめ) (11) -
NEWS for Ruby 2
. 0 . 0 (11) -
NEWS for Ruby 2
. 6 . 0 (6) -
NEWS for Ruby 2
. 7 . 0 (5) -
NEWS for Ruby 3
. 0 . 0 (4) - Rubyで使われる記号の意味(正規表現の複雑な記号は除く) (11)
- Ruby用語集 (11)
- [] (246)
- at (11)
-
backtrace
_ locations (22) - bsearch (44)
- byteslice (33)
- caller (33)
-
caller
_ locations (22) -
content
_ range (11) - each (22)
- fill (66)
- max (42)
- min (42)
- minmax (10)
- new (11)
- pack (19)
- pack テンプレート文字列 (11)
- rand (88)
- range (11)
-
range
_ length (11) -
reverse
_ each (2) -
ruby 1
. 8 . 3 feature (11) - size (11)
- slice (154)
- slice! (33)
- step (28)
- store (11)
-
uid
_ store (11) - unpack (11)
- yaml (11)
- リテラル (11)
- 演算子式 (11)
検索結果
先頭5件
-
Range (38120.0)
-
範囲オブジェクトのクラス。 範囲オブジェクトは文字どおり何らかの意味での範囲を表します。数の範囲はもちろん、 日付の範囲や、「"a" から "z" まで」といった文字列の範囲を表すこともできます。
...囲オブジェクトは、Range.new を用いるほか、範囲演算子(`..' または `...')を
用いた d:spec/operator#range で生成できます。
いずれの方法でも始端と終端を与えます。
//emlist[範囲オブジェクトの例][ruby]{
Range.new(1, 5) # 1 以上 5 以......範囲に含まれるかどうかを判定][ruby]{
p (1..5).cover?(6) # => false
p (1..5).cover?(5) # => true
p (1...5).cover?(5) # => false
//}
Range#cover? メソッドでの判定には演算子 <=> が使われます。
当然、始端と終端は <=> メソッドで比較可能である(n...... |i| p i }
# => 3
# 4
# 5
(3...5).each{ |i| p i }
# => 3
# 4
//}
繰り返しの範囲を表す範囲オブジェクトは、始端が「次の値」を返す succ メソッドを
持たなければなりません。
Range クラスには Enumerable が include してあるので,Range......囲オブジェクト」
を作ることができるようになりました。
//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..) # 同上(略した書き方)
//}
また、Ru... -
Range
# size -> Integer | Float :: INFINITY | nil (21202.0) -
範囲内の要素数を返します。始端、終端のいずれかのオブジェクトが Numeric のサブクラスのオブジェクトではない場合には nil を返します。
範囲内の要素数を返します。始端、終端のいずれかのオブジェクトが
Numeric のサブクラスのオブジェクトではない場合には nil を返します。
//emlist[例][ruby]{
(10..20).size # => 11
("a".."z").size # => nil
(-Float::INFINITY..Float::INFINITY).size # => Infinity
//} -
Range
# bsearch {|obj| . . . } -> object | nil (21150.0) -
ブロックの評価結果で範囲内の各要素の大小判定を行い、条件を満たす値を二 分探索(計算量は O(log n))で検索します。要素が見つからない場合は nil を 返します。
...= [0, 4, 7, 10, 12]
(0...ary.size).bsearch {|i| ary[i] >= 4 } # => 1
(0...ary.size).bsearch {|i| ary[i] >= 6 } # => 2
(0...ary.size).bsearch {|i| ary[i] >= 8 } # => 3
(0...ary.size).bsearch {|i| ary[i] >= 100 } # => nil
(0.0...Float::INFINITY).bsearch {|x| Math.log(x) >= 0 } # => 1.0
//}
find-any......すか、nil を返します。
//emlist[例][ruby]{
ary = [0, 100, 100, 100, 200]
(0..4).bsearch {|i| 100 - ary[i] } # => 1, 2 or 3
(0..4).bsearch {|i| 300 - ary[i] } # => nil
(0..4).bsearch {|i| 50 - ary[i] } # => nil
//}
上記の 2 つのモードを混在して使用しないでください(... -
Range
. new(first , last , exclude _ end = false) -> Range (21149.0) -
first から last までの範囲オブジェクトを生成して返しま す。
...囲オブジェクトの場合][ruby]{
Range.new(1, 10) # => 1..10
Range.new(1, 10, true) # => 1...10
//}
//emlist[例: 日付オブジェクトの範囲オブジェクトの場合][ruby]{
require 'date'
Range.new(Date.today, Date.today >> 1).each {|d| puts d }
# => 2017-09-16
# 2017-09-17.........
# 2017-10-16
//}
//emlist[例: IPアドレスの範囲オブジェクトの場合][ruby]{
require 'ipaddr'
Range.new(IPAddr.new("192.0.2.1"), IPAddr.new("192.0.2.3")).each {|ip| puts ip}
# => 192.0.2.1
# 192.0.2.2
# 192.0.2.3
//}
//emlist[例: 自作のオブジェクトの場合][ru......by]{
MyInteger = Struct.new(:value) do
def succ
self.class.new(value + 1)
end
def <=>(other)
value <=> other.value
end
def to_s
value.to_s
end
end
Range.new(MyInteger.new(1), MyInteger.new(3)).each {|i| puts i }
# => 1
# 2
# 3
//}... -
Range
# max {|a , b| . . . } -> object | nil (21140.0) -
ブロックの評価結果で範囲内の各要素の大小判定を行い、最大の要素、もしくは 最大の n 要素を返します。引数を指定しない形式では、 範囲内に要素が存在しなければ nil を返します。 引数を指定する形式では、空の配列を返します。
...を返したときに発生します。
@see Range#last, Range#min, Enumerable#max
//emlist[例][ruby]{
h = { 1 => "C", 2 => "Go", 3 => "Ruby" }
(1..3).max { |a, b| h[a].length <=> h[b].length } # => 3
//}
//emlist[例][ruby]{
(1..3).max(2) { |a, b| h[a].length <=> h[b].length } # => [3, 2]
//}... -
Range
# max(n) {|a , b| . . . } -> [object] (21140.0) -
ブロックの評価結果で範囲内の各要素の大小判定を行い、最大の要素、もしくは 最大の n 要素を返します。引数を指定しない形式では、 範囲内に要素が存在しなければ nil を返します。 引数を指定する形式では、空の配列を返します。
...を返したときに発生します。
@see Range#last, Range#min, Enumerable#max
//emlist[例][ruby]{
h = { 1 => "C", 2 => "Go", 3 => "Ruby" }
(1..3).max { |a, b| h[a].length <=> h[b].length } # => 3
//}
//emlist[例][ruby]{
(1..3).max(2) { |a, b| h[a].length <=> h[b].length } # => [3, 2]
//}... -
Range
# min {|a , b| . . . } -> object | nil (21140.0) -
ブロックの評価結果で範囲内の各要素の大小判定を行い、最小の要素、もしくは 最小の n 要素を返します。引数を指定しない形式では、範囲内に要素が存在しなければ nil を返します。引数を指定する形式では、空の配列を返します。
...を返したときに発生します。
@see Range#first, Range#max, Enumerable#min
//emlist[例][ruby]{
h = { 1 => "C", 2 => "Go", 3 => "Ruby" }
(1..3).min { |a, b| h[a].length <=> h[b].length } # => 1
//}
//emlist[例][ruby]{
(1..3).min(2) { |a, b| h[a].length <=> h[b].length } # => [1, 2]
//... -
Range
# min(n) {|a , b| . . . } -> [object] (21140.0) -
ブロックの評価結果で範囲内の各要素の大小判定を行い、最小の要素、もしくは 最小の n 要素を返します。引数を指定しない形式では、範囲内に要素が存在しなければ nil を返します。引数を指定する形式では、空の配列を返します。
...を返したときに発生します。
@see Range#first, Range#max, Enumerable#min
//emlist[例][ruby]{
h = { 1 => "C", 2 => "Go", 3 => "Ruby" }
(1..3).min { |a, b| h[a].length <=> h[b].length } # => 1
//}
//emlist[例][ruby]{
(1..3).min(2) { |a, b| h[a].length <=> h[b].length } # => [1, 2]
//... -
Range
# max {|a , b| . . . } -> object | nil (21127.0) -
ブロックの評価結果で範囲内の各要素の大小判定を行い、最大の要素を返しま す。範囲内に要素が存在しなければ nil を返します。
...の整数
を、期待しています。
@raise TypeError ブロックが整数以外を返したときに発生します。
@see Range#last, Range#min, Enumerable#max
//emlist[例][ruby]{
h = { 1 => "C", 2 => "Go", 3 => "Ruby" }
(1..3).max { |a, b| h[a].length <=> h[b].length } # => 3
//}... -
Range
# min {|a , b| . . . } -> object | nil (21127.0) -
ブロックの評価結果で範囲内の各要素の大小判定を行い、最小の要素を返しま す。範囲内に要素が存在しなければ nil を返します。
...整数
を、期待しています。
@raise TypeError ブロックが整数以外を返したときに発生します。
@see Range#first, Range#max, Enumerable#min
//emlist[例][ruby]{
h = { 1 => "C", 2 => "Go", 3 => "Ruby" }
(1..3).min { |a, b| h[a].length <=> h[b].length } # => 1
//}... -
Range
# reverse _ each {|element| . . . } -> self (21125.0) -
逆順に各要素に対してブロックを評価します。
...範囲オブジェクトに対してこのメソッドを呼んだ場合に発生します。
//emlist[例][ruby]{
(1..3).reverse_each # => #<Enumerator: ...>
(1..3).reverse_each { |v| p v }
# => 3
# 2
# 1
(1..).reverse_each { |v| p v } # raises: TypeError: can't iterate from NilClass
//}... -
Range
# step(s = 1) {|item| . . . } -> self (21125.0) -
範囲内の要素を s おきに繰り返します。
...なかった時かつ数値の Range の時は Enumerator::ArithmeticSequence を返します。
@return ブロックを指定しなかったその他の Range の時は Enumerator を返します。(例: String の Range)
//emlist[例][ruby]{
("a" .. "f").step(2) {|v| p v}
# => "a"
# "c"
# "... -
Range
# each {|item| . . . } -> self (21119.0) -
範囲内の要素に対して繰り返します。
...範囲内の要素に対して繰り返します。
Range#each は各要素の succ メソッドを使用してイテレーションするようになりました。
@raise TypeError succ メソッドを持たないクラスの範囲オブジェクトに対してこのメソッドを呼んだ場......合に発生します。
//emlist[例][ruby]{
(10..15).each {|n| print n, ' ' }
# prints: 10 11 12 13 14 15
(2.5..5).each {|n| print n, ' ' }
# raises: TypeError: can't iterate from Float
//}...