[#41630] [ANN] langhelp-0.9.0 — rubikitch@...
るびきちです。
7 messages
2005/12/01
[#41654] Hashを継承したクラスの利用方法について — saitani <cxj15527@...>
お世話になります。
9 messages
2005/12/04
[#41720] Tempfile#== — とみたまさひろ <tommy@...>
とみたです。
5 messages
2005/12/21
[#41728] ruby 1.8.4 released — Yukihiro Matsumoto <matz@...>
まつもと ゆきひろです
9 messages
2005/12/24
[ruby-list:41727] Re: Tempfile#==
From:
OOTANI TAKASHI <tksotn@...>
Date:
2005-12-23 13:35:54 UTC
List:
ruby-list #41727
大谷です。
解説ありがとうございます。
From: Yukihiro Matsumoto <matz@ruby-lang.org>
Subject: [ruby-list:41725] Re: Tempfile#==
Date: Fri, 23 Dec 2005 09:10:46 +0900
> |> |Tempfile オブジェクトを == で比較すると false になってしまいますが、
> |> |そういうものなのでしょうか。
> |>
> |> オリジナルに転送しちゃうんでオリジナルとTempfileが一致しない
> |> ということのようです。
> |
> |すいません。ここの理屈がよくわかりません。
>
> TempfileはFileをwrapしているDelegatorなので、==は内部のFile
> オブジェクトへ転送されます。仮にaをTempfile、bを内部のFileオ
> ブジェクトとすると
x=Tempfile.new("xx")
y=x ; p x==y # とするまでもなく、
p x==x # ですでにfalseということですね。
p x==x.__getobj__ # だとtrueになる。イメージはつかめました。
> * Delegator側で==を特別扱いする
> * IO#==でto_ioでも使って比較する
>
> などの対応が考えられます。今回は前者を採用して対応してみまし
> た。
1.9での対応方法ということでしょうか。確かに a==a が false なのは
気持ち悪いです。
委譲については、ちょうど結城さんのデザインパターンの本を買ったこともあり、
引き続き勉強してみます。「rubyによるデザインパターン入門」とかあれば
それを買ったんですが。
--
OOTANI TAKASHI <tksotn@anet.ne.jp>