遠藤です。 2011年2月1日8:59 Yukihiro Matsumoto <matz / ruby-lang.org>: > |> String#gsub! などの推論から、(少なくとも String の) 破壊的な > |> メソッドは、変更が起きなかった時に nil を返しそうです。 > > メソッド名の末尾に!がつくメソッドは変更が起きなかったときに > nilを返すというルールになっています※。force_encodingは破壊的 > ではありますが、!はつかないので対象外ですね。 そうなんですね。ありがとうございます。 > ※ Array#reverse! は変更がなくても nil を返しませんが、これ > は逆順にはしたが、結果として同じであったと解釈します。 ふーむ。どうもさじ加減が難しい。 > |> force_encoding の結果をそのまま変数に代入するのは本当に推奨 > |> されるスタイルなんでしょうか。 > | > |selfかnilを返すforce_encoding!を追加するとか? > > 本当に必要であれば。 ! つきも ! なしも破壊的なのはもっと混乱しそうです。 -- Yusuke Endoh <mame / tsg.ne.jp>