From: Satoshi GUNJI Date: 2011-02-23T19:10:14+09:00 Subject: [ruby-list:47919] Re: 2 種類のリテラル 郡司と申します。 #識者ではないので完全に雑談です。 #ちゃんとした方のフォローが待たれます‥‥。 > えぐち@エスアンドイーです > Immutable の特徴の一部な気がします。 「同じリテラルであれば同一のオブジェクト(同一のObject IDのオブジェクト) が返ること」 と、 「返ってきたオブジェクトがImmutableであること」 とは、独立な気がしますが、どうでしょうかねえ。 たまたまそうである、というだけで、破壊可能なオブジェクトが返ってきても よさそうな気がします。ただ、そんなもの(毎回同じオブジェクトを返すが、 そのオブジェクトは破壊可能)はなさそうですけどね。 > Immutable 固有の特徴ではない、、かもしれない。 もう完全に脱線気味なのですが、そういえばPythonの文字列は Immutableだったなあ‥‥などと思い出して実験してみたところ、 なんだか不思議な結果になりました。 -------- >>> a = "aaa" >>> b = "bbb" >>> ab = a + b >>> id("aaabbb") 140248337377680 >>> id(ab) 140248337377776 >>> id("aaabbb") 140248337377584 >>> id(ab) 140248337377776 >>> id("aaabbb") 140248337377680 >>> -------- #ここまで来ると、さすがにRubyの話ではないので、 #Pythonに詳しい方に聞いてみたほうがいいのでしょうね‥‥。