まつもと ゆきひろです

In message "[ruby-list:7372] Re: Q: jcode.rb tr(String + nil)"
    on 98/04/08, 石塚圭樹 <keiju / Rational.Com> writes:

|けいじゅ@日本ラショナルソフトウェアです.

|これってハッシュに限るんですかね? ローカル変数に対してはエラーが出るの
|で使えませんが, インスタンス変数は, いきなり
|
|  @count += 1
|
|ができますが...

いや,たまたまfreq.rbの例がハッシュで使っているだけでハッシュ
独自の機能だとは認識していません.ところで foo += 1 でエラー
になるのはバグです.これは代入ですからローカル変数は宣言され
ていて,その値はnilになっているべきです.で,そこに +1 する
から結果は1ですね.

|それならば, ハッシュにそのキーに対する値がない場合のデフォルト値を設定
|するメソッドを用意するというのはいかがでしょう? 

うーん,実装の都合になっちゃいますが,RHash構造体にはデフォ
ルト値をいれるすき間が残ってないんですよ.

まあ,対応する値が無い場合にはなんらかのメソッドを呼び出し,
必要に応じて特異メソッドで置き換えるという手法は使えますが,
Hashの実行速度を下げちゃうでしょうね.それはそれで嬉しくない.

                                まつもと ゆきひろ /:|)