From: "とみたまさひろ" Date: 2000-03-14T22:38:29+09:00 Subject: [ruby-list:21425] Re: 引数コピーとオブジェクト指向 とみたです。 At Mon, 13 Mar 2000 23:45:57 +0900, sho@spc.gr.jp (TADA Tadashi) wrote: >  ところでこんなのはどうでしょう。これならドキュメントに「nameはあらか > じめfreezeさせておけ」と書いくことで注意を促せて、さらに間違いも防げま > す。呼び出し側に責任を持たせつつ、いつ書き換えられるかビクビクする必要 > もない。「値」になりきれないRubyのStringを、極力「値」として扱う工夫で > す: 勝手に freeze なんかされた日にゃ、気軽に String オブジェクトを引数として 渡せなくなってしまいます (^^; 本当に値として扱いたければ、dup して値を保持すればいいんです。実は値を使 いたいのにオブジェクトにこだわるからおかしなことになるんですよ。 dup を「オブジェクトの複製」と思うから抵抗があるんで、「オブジェクトから 文字列値を取り出してその値を持つ新たなオブジェクトを作る」と思えば抵抗は 少なくなるんでは? 「dup」という名前がどうしてもいやなら clone では? それでもやだなら String::new(name) とか。 -- とみたまさひろ