From: Minero Aoki Date: 2003-08-22T20:31:33+09:00 Subject: [ruby-list:38184] Re: String << の動作につきまして 青木です。 In mail "[ruby-list:38183] String << の動作につきまして" kuto@d-itlab.co.jp wrote: > うと と申します。 > ruby 1.8.0 (2003-08-04) [i386-cygwin] > での動作です。 > > (1) % ruby -e "s = ARGV[0]; puts s.frozen?" > false > > (2) % ruby -e "s = ARGV[0]; s << 'hoge'; puts s" foo > -e:1:in `<<': can't modify frozen string (TypeError) > from -e:1 > という動作になっているのですが、これは仕様でしょうか? > 仕様とすればどういった意図だと解釈すればよろしいですか? > ( (2) の部分の frozen string はどの部分なのかよく分かりません ) 1.8 からは ARGV の中身が freeze されるようになったので (2) で正しい動作なんです。(1) で false になるのは、コマンド ライン引数を与えていないから (nil.frozen? になっているから) ですね。 ------------------------------------------------------------------- 青木峰郎