[#1582] [BUG] Regexp — sinara@...

原です。あけましておめでとうございます。

16 messages 1997/01/06

[#1705] 正規表現 単独の ? — Sinichiro Dezawa <dezawa@...>

出沢です

14 messages 1997/01/15

[#1771] rectangle of canvas widget — Noritugu Nakamura <nnakamur@...>

18 messages 1997/01/19

[#1788] Text of TkCanvas — Noritugu Nakamura <nnakamur@...>

28 messages 1997/01/20
[#1800] Re: Text of TkCanvas — matz@... (Yukihiro Matsumoto) 1997/01/21

まつもと ゆきひろです.

[#1802] Re: Text of TkCanvas — Noritugu Nakamura <nnakamur@...> 1997/01/21

[#1806] Re: Text of TkCanvas — matz@... (Yukihiro Matsumoto) 1997/01/22

まつもと ゆきひろです.

[#1816] Re: Text of TkCanvas — Noritugu Nakamura <nnakamur@...> 1997/01/22

[#1819] Re: Text of TkCanvas — matz@... (Yukihiro Matsumoto) 1997/01/22

まつもと ゆきひろです.

[#1865] ruby-1.0-960124 available — matz@... (Yukihiro Matsumoto)

まつもと ゆきひろです

25 messages 1997/01/24
[#1878] Re: ruby-1.0-960124 available — WATANABE Hirofumi <watanabe@...> 1997/01/27

わたなべです.

[#1879] Re: ruby-1.0-960124 available — matz@... (Yukihiro Matsumoto) 1997/01/27

まつもと ゆきひろです.

[#1880] Re: ruby-1.0-960124 available — WATANABE Hirofumi <watanabe@...> 1997/01/27

わたなべです.

[#1890] Re: ruby-1.0-960124 available — matz@... (Yukihiro Matsumoto) 1997/01/27

まつもと ゆきひろです.

[#1926] [Dist] Mutex module — keiju@... (Keiju ISHITSUKA)

けいじゅ@SHLジャパンです.

81 messages 1997/01/28
[#1929] Re: [Dist] Mutex module — matz@... (Yukihiro Matsumoto) 1997/01/29

まつもと ゆきひろです.

[#1934] Re: [Dist] Mutex module 1997/01/29

けいじゅ@SHLジャパンです.

[#1935] Re: [Dist] Mutex module — matz@... (Yukihiro Matsumoto) 1997/01/29

まつもと ゆきひろです.

[#1938] Re: [Dist] Mutex module 1997/01/29

けいじゅ@SHLジャパンです.

[#1940] Re: [Dist] Mutex module — matz@... (Yukihiro Matsumoto) 1997/01/29

まつもと ゆきひろです.

[#1944] Re: [Dist] Mutex module 1997/01/29

けいじゅ@SHLジャパンです.

[#1947] Re: [Dist] Mutex module — matz@... (Yukihiro Matsumoto) 1997/01/29

まつもと ゆきひろです.

[#1960] Re: [Dist] Mutex module — sinara@... 1997/01/30

原です。

[#1969] Re: [Dist] Mutex module 1997/01/30

けいじゅ@SHLジャパンです.

[#1978] Re: [Dist] Mutex module — sinara@... 1997/01/30

原です。

[#1986] Re: [Dist] Mutex module 1997/01/30

けいじゅ@SHLジャパンです.

[#1989] Array as list/tupple (Re: [Dist] Mutex module) — matz@... (Yukihiro Matsumoto) 1997/01/31

まつもと ゆきひろです.

[#2008] [Request] static var? (Re: Array as list/tupple) — sinara@... 1997/01/31

原です。

[#1953] open (file descriptor) — j_kuro@... (Jun Kuroda)

黒田です.

16 messages 1997/01/29

[ruby-list:1656] Re: [Q] Use of '==', 'eql?' and 'hash'

From: matz@... (Yukihiro Matsumoto)
Date: 1997-01-09 08:15:52 UTC
List: ruby-list #1656
まつもと ゆきひろです.

In message "[ruby-list:1655] [Q] Use of '==', 'eql?' and 'hash'"
    on 97/01/09, sinara@blade.nagaokaut.ac.jp <sinara@blade.nagaokaut.ac.jp> writes:
|
|原です。
|
|Hash で使われるメソッド hash について質問です。

|(1) Foo の == を再定義するとそれに合わせて eql? も再定義
|      される様に思いますが、それは正しいですか?

それに合わせてというとちょっと違うと思いますが,eql? のデフォ
ルトの定義は == をつかって

  def eql?(other)
     self == other
  end

こういう感じになっています.

|#正しいとするとマニュアルには書いてないのはまずいのでは。

デフォルトの定義が == を使っていることはマニュアルに明記した
方が良いですね.

|(2)ここで(しかたなく) @a と @b を attr で公開しましたが、
|     公開しないでこの eql? と同様なものは作れるでしょうか?

現状では普通にはできません.ちょっとひねれば

  def eql? other
    other.check_eq? @a, @b
  def
  def check_eq? a, b
    a == @a and b == @b
  end

とかいう実装が考えられます.
# おお,ダブルディスパッチだ.

|(3)eql? を再定義したので hash も再定義すべきですが、
|     この例ではどのようにすればよいでしょうか?

a.eql? bの時,a.hash == b.hashであればなんでもかまいません.
たとえば,

  def hash
    @a.id ^ @b.id
  end

なんかどうでしょう.

|(4)eql? を再定義したのに hash は再定義しなかった場合、
|    どういう局面で不具合がありますか?

  a.hash == b.hash and not a.eql? b

が成立するとHashに格納したオブジェクトが取り出せなくなります.

                                まつもと ゆきひろ /:|)

In This Thread