[#23332] to_str再考 — matz@... (Yukihiro Matsumoto)

まつもと ゆきひろです

15 messages 2004/04/05

[#23380] [SEGV] make test-all (bccwin32 ruby1.9.0) — "H.Yamamoto" <ocean@...2.ccsnet.ne.jp>

山本です。

17 messages 2004/04/15
[#23400] Re: [SEGV] make test-all (bccwin32 ruby1.9.0) — "H.Yamamoto" <ocean@...2.ccsnet.ne.jp> 2004/04/16

山本です。落ちる場所がわかりました。

[#23402] Re: [SEGV] make test-all (bccwin32 ruby1.9.0) — "H.Yamamoto" <ocean@...2.ccsnet.ne.jp> 2004/04/16

山本です。

[#23403] Re: [SEGV] make test-all (bccwin32 ruby1.9.0) — nobu.nakada@... 2004/04/16

なかだです。

[#23405] Re: [SEGV] make test-all (bccwin32 ruby1.9.0) — "H.Yamamoto" <ocean@...2.ccsnet.ne.jp> 2004/04/16

山本です。

[#23407] Re: [SEGV] make test-all (bccwin32 ruby1.9.0) — "H.Yamamoto" <ocean@...2.ccsnet.ne.jp> 2004/04/16

山本です。

[ruby-dev:23374] Re: to_str再考

From: "NAKAMURA, Hiroshi" <nakahiro@...>
Date: 2004-04-12 04:39:45 UTC
List: ruby-dev #23374
なひです。

> From: "Yukihiro Matsumoto" <matz@ruby-lang.org>
> Sent: Tuesday, April 06, 2004 10:57 AM

> |改めて上記定義を元に考え直してみると、今は、
> |
> |* CellをStringのsubclassにする。to_strは消す。
> |* CellにStringのmethodを定義しまくる/Stringにdelegateする。
> |
> |のいずれかかな、と思ってます。前者はちょっと実装が気色悪く
> |なりそうなんですが。。。
> 
> 後者の場合はSimpleDelegatorよりもDelegateClassを使うことをお
> 勧めします。最近、tempfileで似たようなことがありましたから
> (遅いし、メモリを馬鹿食いする)。

[ruby-talk:95636]からのやつですね。delegateする各オブジェクト分の
メタクラス作る分、遅いし、メモリを馬鹿食いすると。気付いてなかった
ので面白かったです。

で、上記Cellなんですが、とりあえず前者の方法で実装してみようと
思っています。nilを保持可能なStringで、nilと空文字列の区別を
気にしない人には概ねStringとして使えて、気にする人には
Cell#is_nullを提供する、というものです。

nilと空文字列を区別するため、eql?を上書きしないといけないのが、
上記「気色悪」いと書いた理由でした。まぁやってみます。

In This Thread