るりまサーチ (Ruby 2.3.0)

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

別のキーワード

  1. _builtin fixnum
  2. fixnum /
  3. each_object fixnum
  4. fixnum %
  5. fixnum *

クラス

モジュール

キーワード

検索結果

Fixnum (114007.0)

Alias of Integer

Alias of Integer

Fixnum#size -> Fixnum (63328.0)

整数の実装上のサイズをバイト数で返します。

整数の実装上のサイズをバイト数で返します。

現在の実装では Fixnum は、sizeof(long) 固定(多くの 32
bit マシンで 4 バイト)、Bignumは、システム依存です。

p 1.size
p 0x1_0000_0000.size
# => 4
8

Fixnum#%(other) -> Fixnum | Bignum | Float (63313.0)

算術演算子。剰余を計算します。

算術演算子。剰余を計算します。

@param other 二項演算の右側の引数(対象)
@return 計算結果

Fixnum#/(other) -> Fixnum | Bignum | Float (63313.0)

算術演算子。商を計算します。

算術演算子。商を計算します。

@param other 二項演算の右側の引数(対象)
@return 計算結果

Fixnum#abs -> Fixnum | Bignum (63313.0)

self の絶対値を返します。

self の絶対値を返します。

絞り込み条件を変える

Fixnum#div(other) -> Fixnum | Bignum | Float (63313.0)

算術演算子。商を計算します。

算術演算子。商を計算します。

@param other 二項演算の右側の引数(対象)
@return 計算結果

Fixnum#magnitude -> Fixnum | Bignum (63313.0)

self の絶対値を返します。

self の絶対値を返します。

Fixnum#modulo(other) -> Fixnum | Bignum | Float (63313.0)

算術演算子。剰余を計算します。

算術演算子。剰余を計算します。

@param other 二項演算の右側の引数(対象)
@return 計算結果

Fixnum#&(other) -> Fixnum | Bignum (63310.0)

ビット二項演算子。論理積を計算します。

ビット二項演算子。論理積を計算します。

@param other 数値

1 & 1 #=> 1
2 & 3 #=> 2

Fixnum#*(other) -> Fixnum | Bignum | Float (63310.0)

算術演算子。積を計算します。

算術演算子。積を計算します。

@param other 二項演算の右側の引数(対象)
@return 計算結果

絞り込み条件を変える

Fixnum#**(other) -> Fixnum | Bignum | Float (63310.0)

算術演算子。冪(べき乗)を計算します。

算術演算子。冪(べき乗)を計算します。

@param other 二項演算の右側の引数(対象)
@return 計算結果

2 ** 3 # => 8
2 ** 0 # => 1
0 ** 0 # => 1

Fixnum#+(other) -> Fixnum | Bignum | Float (63310.0)

算術演算子。和を計算します。

算術演算子。和を計算します。

@param other 二項演算の右側の引数(対象)
@return 計算結果

Fixnum#-(other) -> Fixnum | Bignum | Float (63310.0)

算術演算子。差を計算します。

算術演算子。差を計算します。

@param other 二項演算の右側の引数(対象)
@return 計算結果

Fixnum#<<(bits) -> Fixnum | Bignum (63310.0)

シフト演算子。bits だけビットを左にシフトします。

シフト演算子。bits だけビットを左にシフトします。

@param bits シフトさせるビット数

printf("%#b\n", 0b0101 << 1) #=> 0b1010
p -1 << 1 #=> -2

Fixnum#<=>(other) -> Fixnum (63310.0)

self と other を比較して、self が大きい時に正、 等しい時に 0、小さい時に負の整数を返します。

self と other を比較して、self が大きい時に正、
等しい時に 0、小さい時に負の整数を返します。

@param other 比較対象の数値
@return -1 か 0 か 1 のいずれか

1 <=> 2 #=> -1
1 <=> 1 #=> 0
2 <=> 1 #=> 1

絞り込み条件を変える

Fixnum#>>(bits) -> Fixnum | Bignum (63310.0)

シフト演算子。bits だけビットを右にシフトします。

シフト演算子。bits だけビットを右にシフトします。

右シフトは、符号ビット(最上位ビット(MSB))が保持されます。
bitsが実数の場合、小数点以下を切り捨てた値でシフトします。

@param bits シフトさせるビット数

printf("%#b\n", 0b0101 >> 1) #=> 0b10
p -1 >> 1 #=> -1

Fixnum#[](nth) -> Fixnum (63310.0)

nth 番目のビット(最下位ビット(LSB)が 0 番目)が立っている時 1 を、そうでなければ 0 を返します。

nth 番目のビット(最下位ビット(LSB)が 0 番目)が立っている時 1
を、そうでなければ 0 を返します。

@param nth 何ビット目を指すかの数値
@return 1 か 0

self[nth]=bit (つまりビットの修正) がないのは、Numeric 関連クラスが
immutable であるためです。

Fixnum#^(other) -> Fixnum | Bignum (63310.0)

ビット二項演算子。排他的論理和を計算します。

ビット二項演算子。排他的論理和を計算します。

@param other 数値

1 ^ 1 #=> 0
2 ^ 3 #=> 1

Fixnum#succ -> Fixnum | Bignum (63310.0)

self の次の整数を返します。

self の次の整数を返します。

Fixnum#|(other) -> Fixnum | Bignum (63310.0)

ビット二項演算子。論理和を計算します。

ビット二項演算子。論理和を計算します。

@param other 数値

1 | 1 #=> 1
2 | 3 #=> 3

絞り込み条件を変える

Fixnum#~ -> Fixnum | Bignum (63310.0)

ビット演算子。否定を計算します。

ビット演算子。否定を計算します。

~1 #=> -2
~3 #=> -4
~-4 #=> 3

Fixnum#-@ -> Integer (63007.0)

単項演算子の - です。 self の符号を反転させたものを返します。

単項演算子の - です。
self の符号を反転させたものを返します。

Fixnum#<(other) -> bool (63007.0)

比較演算子。数値として小さいか判定します。

比較演算子。数値として小さいか判定します。

@param other 比較対象の数値
@return self よりも other が大きい場合 true を返します。
そうでなければ false を返します。

Fixnum#<=(other) -> bool (63007.0)

比較演算子。数値として等しいまたは小さいか判定します。

比較演算子。数値として等しいまたは小さいか判定します。

@param other 比較対象の数値
@return self よりも other の方が大きい場合か、
両者が等しい場合 true を返します。
そうでなければ false を返します。

Fixnum#==(other) -> bool (63007.0)

比較演算子。数値として等しいか判定します。

比較演算子。数値として等しいか判定します。

@param other 比較対象の数値
@return self と other が等しい場合 true を返します。
そうでなければ false を返します。

絞り込み条件を変える

Fixnum#>(other) -> bool (63007.0)

比較演算子。数値として大きいか判定します。

比較演算子。数値として大きいか判定します。

@param other 比較対象の数値
@return self よりも other の方が小さい場合 true を返します。
そうでなければ false を返します。

Fixnum#>=(other) -> bool (63007.0)

比較演算子。数値として等しいまたは大きいか判定します。

比較演算子。数値として等しいまたは大きいか判定します。

@param other 比較対象の数値
@return self よりも other の方が小さい場合か、
両者が等しい場合 true を返します。
そうでなければ false を返します。

Fixnum#bit_length -> Integer (63007.0)

self を表すのに必要なビット数を返します。

self を表すのに必要なビット数を返します。

「必要なビット数」とは符号ビットを除く最上位ビットの位置の事を意味しま
す。2**n の場合は n+1 になります。self にそのようなビットがない(0 や
-1 である)場合は 0 を返します。

例: ceil(log2(int < 0 ? -int : int+1)) と同じ結果

(-2**12-1).bit_length # => 13
(-2**12).bit_length # => 12
(-2**12+1).bit_length # => 12
-0x101.bit_len...

Fixnum#divmod(other) -> [Integer, Numeric] (63007.0)

self を other で割った商 q と余り r を、 [q, r] という 2 要素の配列にし て返します。 商 q は常に整数ですが、余り r は整数であるとは限りません。

self を other で割った商 q と余り r を、 [q, r] という 2 要素の配列にし
て返します。 商 q は常に整数ですが、余り r は整数であるとは限りません。

@param other self を割る数。

@see Numeric#divmod

Fixnum#even? -> bool (63007.0)

self が偶数の場合に true を返します。そうでない場合に false を返します。

self が偶数の場合に true を返します。そうでない場合に false を返します。

絞り込み条件を変える

Fixnum#fdiv(other) -> Float | Complex (63007.0)

self を other で割った商を Float で返します。 ただし Complex が関わる場合は例外です。 その場合も成分は Float になります。

self を other で割った商を Float で返します。
ただし Complex が関わる場合は例外です。
その場合も成分は Float になります。

@param other self を割る数を指定します。

@see Numeric#quo

Fixnum#inspect(base = 10) -> String (63007.0)

self を引数で指定した基数の文字列表現に変換します。

self を引数で指定した基数の文字列表現に変換します。

@param base 基数を 2 から 36 の整数で指定します。

12345.to_s #=> "12345"
12345.to_s(2) #=> "11000000111001"
12345.to_s(8) #=> "30071"
12345.to_s(10) #=> "12345"
12345.to_s(16) #=> "3039"
12345.to_s(36) #=> "9ix"

Fixnum#odd? -> bool (63007.0)

self が奇数の場合に true を返します。そうでない場合に false を返します。

self が奇数の場合に true を返します。そうでない場合に false を返します。

Fixnum#to_f -> Float (63007.0)

値を浮動小数点数(Float)に変換します。

値を浮動小数点数(Float)に変換します。

Fixnum#to_s(base = 10) -> String (63007.0)

self を引数で指定した基数の文字列表現に変換します。

self を引数で指定した基数の文字列表現に変換します。

@param base 基数を 2 から 36 の整数で指定します。

12345.to_s #=> "12345"
12345.to_s(2) #=> "11000000111001"
12345.to_s(8) #=> "30071"
12345.to_s(10) #=> "12345"
12345.to_s(16) #=> "3039"
12345.to_s(36) #=> "9ix"

絞り込み条件を変える

Fixnum#zero? -> bool (63007.0)

self が 0 の場合に true を返します。そうでない場合に false を返します。

self が 0 の場合に true を返します。そうでない場合に false を返します。

Bignum#size -> Fixnum (328.0)

整数の実装上のサイズをバイト数で返します。

整数の実装上のサイズをバイト数で返します。

現在の実装では Fixnum は、sizeof(long) 固定(多くの 32
bit マシンで 4 バイト)、Bignumは、システム依存です。

p 1.size
p 0x1_0000_0000.size
# => 4
8

Bignum#%(other) -> Fixnum | Bignum | Float (313.0)

算術演算子。剰余を計算します。

算術演算子。剰余を計算します。

@param other 二項演算の右側の引数(対象)
@return 計算結果

Bignum#/(other) -> Fixnum | Bignum | Float (313.0)

算術演算子。商を計算します。

算術演算子。商を計算します。

@param other 二項演算の右側の引数(対象)
@return 計算結果

Bignum#abs -> Fixnum | Bignum (313.0)

self の絶対値を返します。

self の絶対値を返します。

絞り込み条件を変える

Bignum#div(other) -> Fixnum | Bignum | Float (313.0)

算術演算子。商を計算します。

算術演算子。商を計算します。

@param other 二項演算の右側の引数(対象)
@return 計算結果

Bignum#magnitude -> Fixnum | Bignum (313.0)

self の絶対値を返します。

self の絶対値を返します。

Bignum#modulo(other) -> Fixnum | Bignum | Float (313.0)

算術演算子。剰余を計算します。

算術演算子。剰余を計算します。

@param other 二項演算の右側の引数(対象)
@return 計算結果

Bignum#&(other) -> Fixnum | Bignum (310.0)

ビット二項演算子。論理積を計算します。

ビット二項演算子。論理積を計算します。

@param other 数値

1 & 1 #=> 1
2 & 3 #=> 2

Bignum#*(other) -> Fixnum | Bignum | Float (310.0)

算術演算子。積を計算します。

算術演算子。積を計算します。

@param other 二項演算の右側の引数(対象)
@return 計算結果

絞り込み条件を変える

Bignum#**(other) -> Fixnum | Bignum | Float (310.0)

算術演算子。冪(べき乗)を計算します。

算術演算子。冪(べき乗)を計算します。

@param other 二項演算の右側の引数(対象)
@return 計算結果

2 ** 3 # => 8
2 ** 0 # => 1
0 ** 0 # => 1

Bignum#+(other) -> Fixnum | Bignum | Float (310.0)

算術演算子。和を計算します。

算術演算子。和を計算します。

@param other 二項演算の右側の引数(対象)
@return 計算結果

Bignum#-(other) -> Fixnum | Bignum | Float (310.0)

算術演算子。差を計算します。

算術演算子。差を計算します。

@param other 二項演算の右側の引数(対象)
@return 計算結果

Bignum#<<(bits) -> Fixnum | Bignum (310.0)

シフト演算子。bits だけビットを左にシフトします。

シフト演算子。bits だけビットを左にシフトします。

@param bits シフトさせるビット数

printf("%#b\n", 0b0101 << 1) #=> 0b1010
p -1 << 1 #=> -2

Bignum#<=>(other) -> Fixnum | nil (310.0)

self と other を比較して、self が大きい時に正、 等しい時に 0、小さい時に負の整数を返します。

self と other を比較して、self が大きい時に正、
等しい時に 0、小さい時に負の整数を返します。

@param other 比較対象の数値
@return -1 か 0 か 1 のいずれか

1 <=> 2 #=> -1
1 <=> 1 #=> 0
2 <=> 1 #=> 1

絞り込み条件を変える

Bignum#>>(bits) -> Fixnum | Bignum (310.0)

シフト演算子。bits だけビットを右にシフトします。

シフト演算子。bits だけビットを右にシフトします。

右シフトは、符号ビット(最上位ビット(MSB))が保持されます。
bitsが実数の場合、小数点以下を切り捨てた値でシフトします。

@param bits シフトさせるビット数

printf("%#b\n", 0b0101 >> 1) #=> 0b10
p -1 >> 1 #=> -1

Bignum#[](nth) -> Fixnum (310.0)

nth 番目のビット(最下位ビット(LSB)が 0 番目)が立っている時 1 を、そうでなければ 0 を返します。

nth 番目のビット(最下位ビット(LSB)が 0 番目)が立っている時 1
を、そうでなければ 0 を返します。

@param nth 何ビット目を指すかの数値
@return 1 か 0

self[nth]=bit (つまりビットの修正) がないのは、Numeric 関連クラスが
immutable であるためです。

Bignum#^(other) -> Fixnum | Bignum (310.0)

ビット二項演算子。排他的論理和を計算します。

ビット二項演算子。排他的論理和を計算します。

@param other 数値

1 ^ 1 #=> 0
2 ^ 3 #=> 1

Bignum#remainder(other) -> Fixnum | Bignum | Float (310.0)

self を other で割った余り r を返します。

self を other で割った余り r を返します。

r の符号は self と同じになります。

@param other self を割る数。

@see Bignum#divmod, Bignum#modulo, Numeric#modulo

Bignum#|(other) -> Fixnum | Bignum (310.0)

ビット二項演算子。論理和を計算します。

ビット二項演算子。論理和を計算します。

@param other 数値

1 | 1 #=> 1
2 | 3 #=> 3

絞り込み条件を変える

Bignum#~ -> Fixnum | Bignum (310.0)

ビット演算子。否定を計算します。

ビット演算子。否定を計算します。

~1 #=> -2
~3 #=> -4
~-4 #=> 3

Numeric (169.0)

数値を表す抽象クラスです。Integer や Float などの数値クラス は Numeric のサブクラスとして実装されています。

数値を表す抽象クラスです。Integer や Float などの数値クラス
は Numeric のサブクラスとして実装されています。

演算や比較を行うメソッド(+, -, *, /, <=>)は Numeric のサブクラスで定義されま
す。Numeric で定義されているメソッドは、サブクラスで提供されているメソッド
(+, -, *, /, %) を利用して定義されるものがほとんどです。
つまり Numeric で定義されているメソッドは、Numeric のサブクラスとして新たに数値クラスを定義した時に、
演算メソッド(+, -, *, /, %, <=>, coerce)だけを定義すれ...

Kernel.#Integer(arg, base = 0) -> Integer (55.0)

引数を整数(Fixnum,Bignum)に変換した結果を返します。

引数を整数(Fixnum,Bignum)に変換した結果を返します。

引数が数値の場合は直接変換し(小数点以下切り落とし)、
文字列の場合は、進数を表す接頭辞を含む整数表現とみなせる文字列のみ
変換します。

数値と文字列以外のオブジェクトに対しては arg.to_int, arg.to_i を
この順に使用して変換します。

@param arg 変換対象のオブジェクトです。

@param base 基数として0か2から36の整数を指定します(引数argに文字列を指
定した場合のみ)。省略するか0を指定した場合はプリフィクスか
ら基数を判断...

Kernel.#set_trace_func(proc) -> Proc (43.0)

Ruby インタプリタのイベントをトレースする Proc オブジェクトとして 指定された proc を登録します。 nil を指定するとトレースがオフになります。

Ruby インタプリタのイベントをトレースする Proc オブジェクトとして
指定された proc を登録します。 nil を指定するとトレースがオフになります。

Ruby インタプリタがプログラムを実行する過程で、メソッドの呼び出しや
式の評価などのイベントが発生する度に、以下で説明する6個の引数とともに
登録された Proc オブジェクトを実行します。

標準添付の debug、tracer、
profile はこの組み込み関数を利用して実現されています。

=== ブロックパラメータの意味

渡す Proc オブジェクトのパラメータは
//emlist[][ruby]{
proc{|...

ObjectSpace.#each_object -> Enumerator (43.0)

指定された klass と Object#kind_of? の関係にある全ての オブジェクトに対して繰り返します。引数が省略された時には全てのオブ ジェクトに対して繰り返します。 繰り返した数を返します。

指定された klass と Object#kind_of? の関係にある全ての
オブジェクトに対して繰り返します。引数が省略された時には全てのオブ
ジェクトに対して繰り返します。
繰り返した数を返します。

ブロックが与えられなかった場合は、
Enumerator オブジェクトを返します。

次のクラスのオブジェクトについては繰り返しません

* Fixnum
* Symbol
* TrueClass
* FalseClass
* NilClass

とくに、klass に Fixnum や Symbol などのクラスを指定した場合は、
何も繰り返さないことになります。
なお、Sy...

絞り込み条件を変える

ObjectSpace.#each_object {|object| ...} -> Integer (43.0)

指定された klass と Object#kind_of? の関係にある全ての オブジェクトに対して繰り返します。引数が省略された時には全てのオブ ジェクトに対して繰り返します。 繰り返した数を返します。

指定された klass と Object#kind_of? の関係にある全ての
オブジェクトに対して繰り返します。引数が省略された時には全てのオブ
ジェクトに対して繰り返します。
繰り返した数を返します。

ブロックが与えられなかった場合は、
Enumerator オブジェクトを返します。

次のクラスのオブジェクトについては繰り返しません

* Fixnum
* Symbol
* TrueClass
* FalseClass
* NilClass

とくに、klass に Fixnum や Symbol などのクラスを指定した場合は、
何も繰り返さないことになります。
なお、Sy...

ObjectSpace.#each_object(klass) -> Enumerator (43.0)

指定された klass と Object#kind_of? の関係にある全ての オブジェクトに対して繰り返します。引数が省略された時には全てのオブ ジェクトに対して繰り返します。 繰り返した数を返します。

指定された klass と Object#kind_of? の関係にある全ての
オブジェクトに対して繰り返します。引数が省略された時には全てのオブ
ジェクトに対して繰り返します。
繰り返した数を返します。

ブロックが与えられなかった場合は、
Enumerator オブジェクトを返します。

次のクラスのオブジェクトについては繰り返しません

* Fixnum
* Symbol
* TrueClass
* FalseClass
* NilClass

とくに、klass に Fixnum や Symbol などのクラスを指定した場合は、
何も繰り返さないことになります。
なお、Sy...

ObjectSpace.#each_object(klass) {|object| ...} -> Integer (43.0)

指定された klass と Object#kind_of? の関係にある全ての オブジェクトに対して繰り返します。引数が省略された時には全てのオブ ジェクトに対して繰り返します。 繰り返した数を返します。

指定された klass と Object#kind_of? の関係にある全ての
オブジェクトに対して繰り返します。引数が省略された時には全てのオブ
ジェクトに対して繰り返します。
繰り返した数を返します。

ブロックが与えられなかった場合は、
Enumerator オブジェクトを返します。

次のクラスのオブジェクトについては繰り返しません

* Fixnum
* Symbol
* TrueClass
* FalseClass
* NilClass

とくに、klass に Fixnum や Symbol などのクラスを指定した場合は、
何も繰り返さないことになります。
なお、Sy...

Array#dig(idx, ...) -> object | nil (25.0)

self 以下のネストしたオブジェクトを dig メソッドで再帰的に参照して返し ます。途中のオブジェクトが nil であった場合は nil を返します。

self 以下のネストしたオブジェクトを dig メソッドで再帰的に参照して返し
ます。途中のオブジェクトが nil であった場合は nil を返します。

@param idx インデックスを整数で任意個指定します。

//emlist[例][ruby]{
a = [[1, [2, 3]]]

a.dig(0, 1, 1) # => 3
a.dig(1, 2, 3) # => nil
a.dig(0, 0, 0) # => TypeError: Fixnum does not have #dig...

Array#transpose -> Array (25.0)

自身を行列と見立てて、行列の転置(行と列の入れ換え)を行いま す。転置した配列を生成して返します。空の配列に対しては空の配列を生 成して返します。

自身を行列と見立てて、行列の転置(行と列の入れ換え)を行いま
す。転置した配列を生成して返します。空の配列に対しては空の配列を生
成して返します。

それ以外の一次元の配列に対しては、例外
TypeError が発生します。各要素のサイズが不揃いな配列に対して
は、例外 IndexError が発生します。

//emlist[例][ruby]{
p [[1,2],
[3,4],
[5,6]].transpose
# => [[1, 3, 5], [2, 4, 6]]

p [].transpose
# => []

p [1,2,3].transpose

# => -:1:i...

絞り込み条件を変える

Bignum#bit_length -> Integer (25.0)

self を表すのに必要なビット数を返します。

self を表すのに必要なビット数を返します。

「必要なビット数」とは符号ビットを除く最上位ビットの位置の事を意味しま
す。2**n の場合は n+1 になります。self にそのようなビットがない(0 や
-1 である)場合は 0 を返します。

例: ceil(log2(int < 0 ? -int : int+1)) と同じ結果

(-2**10000-1).bit_length # => 10001
(-2**10000).bit_length # => 10000
(-2**10000+1).bit_length # => 10000

(-2*...

Exception#message -> String (25.0)

エラーメッセージをあらわす文字列を返します。

エラーメッセージをあらわす文字列を返します。

//emlist[例][ruby]{
begin
1 + nil
rescue => e
p e.message #=> "nil can't be coerced into Fixnum"
end
//}

Exception#to_s -> String (25.0)

エラーメッセージをあらわす文字列を返します。

エラーメッセージをあらわす文字列を返します。

//emlist[例][ruby]{
begin
1 + nil
rescue => e
p e.message #=> "nil can't be coerced into Fixnum"
end
//}

IO#<<(object) -> self (25.0)

object を出力します。object が文字列でない時にはメソッ ド to_s を用いて文字列に変換します。

object を出力します。object が文字列でない時にはメソッ
ド to_s を用いて文字列に変換します。

以下のような << の連鎖を使うことができます。

STDOUT << 1 << " is a " << Fixnum << "\n"

@param object 出力したいオブジェクトを与えます。

@raise Errno::EXXX 出力に失敗した場合に発生します。

Integer (25.0)

整数クラスです。

整数クラスです。

整数オブジェクトに特異メソッドを追加する事はできません。追加した場合、
TypeError が発生します。

2.4.0 から Fixnum, Bignum は Integerに統合されました。
2.4.0 からはどちらも Integer クラスのエイリアスとなっています。

絞り込み条件を変える

Object#hash -> Integer (25.0)

オブジェクトのハッシュ値を返します。このハッシュ値は、Object#eql? と合わせて Hash クラスで、2つのオブジェクトを同一のキーとするか判定するために用いられます。

オブジェクトのハッシュ値を返します。このハッシュ値は、Object#eql? と合わせて Hash クラスで、2つのオブジェクトを同一のキーとするか判定するために用いられます。

2つのオブジェクトのハッシュ値が異なるとき、直ちに異なるキーとして判定されます。
逆に、2つのハッシュ値が同じとき、さらに Object#eql? での比較により判定されます。
そのため、同じキーとして判定される状況は Object#eql? の比較で真となる場合のみであり、このとき前段階としてハッシュ値どうしが等しい必要があります。
つまり、

A.eql?(B) ならば A.hash == B.hash

...