From: nobu.nakada@... Date: 2002-03-16T01:04:40+09:00 Subject: [ruby-dev:16421] Re: ライブラリ拡大計画 なかだです。 At Fri, 15 Mar 2002 23:03:37 +0900, Tanaka Akira wrote: > > > ついでにいうと、前者の例の + nil というのもよくわからないです。 > > > > これは、シフトステートを初期状態に戻すシークェンスを追加するた > > めです。iconvは内部でシフト状態を保持するので、ISO-2022-JPなど > > のステートフルなエンコーディングでも、nkfとは違って全部一度に変 > > 換する必要はないのですが、逆に文字列の終りでは明示的にシフト状 > > 態を戻してやる必要があります。 > > あー、とすると strs + [nil] ではないかと思われます。 そういや、Array#+がArrayしか受け付けなくなったのもだいぶ前です ね。ありがとうございます、直します。 ところで、久しぶりに見直してみると気になる仕様がいくつか。 (1) まったく変換されなかったときには元のStringを返しているが、 (今の)String#subなどを考えると常に新しいStringを返したほう が良くはないか。とくにStringのサブクラスが渡された場合など。 (2) エラーが起きたときのIconv::Failureには、失敗するまでに変換 した結果がsuccessに、エラーが起きた部分以降の部分文字列が failedに入っているが、もともとの引数とエラーの位置を返すよ うにしたほうがエラー処理などはしやすいのではないか。 -- --- 僕の前にBugはない。 --- 僕の後ろにBugはできる。 中田 伸悦