るりまサーチ

最速Rubyリファレンスマニュアル検索!
78件ヒット [1-78件を表示] (0.066秒)

別のキーワード

  1. _builtin new
  2. _builtin inspect
  3. _builtin []
  4. _builtin to_s
  5. _builtin each

クラス

キーワード

検索結果

Range (46104.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...
...返す succ メソッドを
持たなければなりません。

Range
クラスには Enumerable が include してあるので,Range#each に
基づき、Enumerable モジュールが提供する多様なメソッドを使うことができます。

=== 破壊的な変更

Ruby の 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...
...囲オブジェクト」
を作ることもできるようになりました。

//emlist[始端を持たない範囲オブジェクト][ruby]{
p Range.new(nil, 5) # 5 以下(下限無し)を表す
p(nil..5) # 同上
p(..5) # 同上(略した書き方)
//}

始端も...

Range#cover?(range) -> bool (29210.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 オブジェクトが引数に渡されており、...
...「a <= c && b < d」を満たし、cが数値ではない(つまり引数の Range の終端を
求めるために succ メソッドの呼び出しが必要な)場合、パフォーマンスの問題が起きる可能性があります。

//emlist[パフォーマンス上の問題が起きる例][...

Range.new(first, last, exclude_end = false) -> Range (29139.0)

first から last までの範囲オブジェクトを生成して返しま す。

...mlist[例: 整数の範囲オブジェクトの場合][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 }
# => 201...
...場合][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[例: 自作のオブジェクトの場合][ruby]{
MyInteger = Struct.new(:value) do
def succ
self.class.new(value + 1)
en...
...d

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#cover?(obj) -> bool (29045.0)

obj が範囲内に含まれている時に true を返します。

...e を返します。

Range
#include? と異なり <=> メソッドによる演算により範囲内かどうかを判定します。
Range
#include? は原則として離散値を扱い、
Range
#cover? は連続値を扱います。
(数値については、例外として Range#include? も連続...
...的に扱います。)

Range
#exclude_end?がfalseなら「begin <= obj <= end」を、
trueなら「begin <= obj < end」を意味します。

@param obj 比較対象のオブジェクトを指定します。

//emlist[数値は連続的に扱われているため、 include? / cover? が同じ...

Range#each -> Enumerator (29020.0)

範囲内の要素に対して繰り返します。

...範囲内の要素に対して繰り返します。

Range
#each は各要素の succ メソッドを使用してイテレーションするようになりました。

@raise TypeError succ メソッドを持たないクラスの範囲オブジェクトに対してこのメソッドを呼んだ場...

絞り込み条件を変える

Range#each {|item| ... } -> self (29020.0)

範囲内の要素に対して繰り返します。

...範囲内の要素に対して繰り返します。

Range
#each は各要素の succ メソッドを使用してイテレーションするようになりました。

@raise TypeError succ メソッドを持たないクラスの範囲オブジェクトに対してこのメソッドを呼んだ場...

String#succ -> String (23247.0)

self の「次の」文字列を返します。

...aa".succ # => "ab"
p "88".succ.succ # => "90"
//}

"99" → "100", "AZZ" → "BAA" のような繰り上げも行われます。
このとき負符号などは考慮されません。

//emlist[][ruby]{
p "99".succ # => "100"
p "ZZ".succ # => "AAA"
p "a9".succ # => "b0"
p "-9".succ...
...は保存されます。

//emlist[][ruby]{
p "1.9.9".succ # => # "2.0.0"
//}

逆に self がアルファベットや数字をまったく含まない場合は、
単純に文字コードを 1 増やします。

//emlist[][ruby]{
p ".".succ # => "/"
//}

さらに、self が空文字列の場...
...succ と逆の動作をするメソッドはありません。
また、succ という名前の由来は successor です。


//emlist[例][ruby]{
p "aa".succ # => "ab"

# 繰り上がり
p "99".succ # => "100"
p "a9".succ # => "b0"
p "Az".succ # => "Ba"
p "zz".succ # => "aaa"
p "-9".succ...

String#next -> String (8147.0)

self の「次の」文字列を返します。

...aa".succ # => "ab"
p "88".succ.succ # => "90"
//}

"99" → "100", "AZZ" → "BAA" のような繰り上げも行われます。
このとき負符号などは考慮されません。

//emlist[][ruby]{
p "99".succ # => "100"
p "ZZ".succ # => "AAA"
p "a9".succ # => "b0"
p "-9".succ...
...は保存されます。

//emlist[][ruby]{
p "1.9.9".succ # => # "2.0.0"
//}

逆に self がアルファベットや数字をまったく含まない場合は、
単純に文字コードを 1 増やします。

//emlist[][ruby]{
p ".".succ # => "/"
//}

さらに、self が空文字列の場...
...succ と逆の動作をするメソッドはありません。
また、succ という名前の由来は successor です。


//emlist[例][ruby]{
p "aa".succ # => "ab"

# 繰り上がり
p "99".succ # => "100"
p "a9".succ # => "b0"
p "Az".succ # => "Ba"
p "zz".succ # => "aaa"
p "-9".succ...