From: Keisuke UTO Date: 2003-08-23T00:07:44+09:00 Subject: [ruby-list:38188] Re: String << の動作につきまして うとです。 青木さん: >(1) で false になるのは、コマンド >ライン引数を与えていないから (nil.frozen? になっているから) ですね。 すんません、ボケてました。 (1)' % ruby -e "s = ARGV[0]; puts s.frozen?" foo true ですね。 なかださん: >ARGVの要素はfreezeされるようになりました。 なるほど。 たけ(tk)さん: > G:\DOWNLOAD\ruby-1.8.0-20030404-i386-mswin32\bin>ruby -e "s = 'foo'; p s.id;s<<'bar';p s.id; p s" > 21121572 ←オブジェクトのIDは変わらない > 21121572 ←つまり、同じオブジェクト > "foobar" > > G:\DOWNLOAD\ruby-1.8.0-20030404-i386-mswin32\bin>ruby -e "s = 'foo'; p > s.id;s+='bar';p s.id; p s" > 21121560 ←元のID > 21121524 ←オブジェクトのIDが変わる。オブジェクトが入れ替わった。 > "foobar" ID を使うとはっきりわかりますね。丁寧な説明ありがとうございます。 青木さん、なかださん、たけ(tk)さん どうもありがとうございました。 -- うと けいすけ