遠藤です。

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>