[#46838] メーリング;;文字化け::iso-2022-jp-2 — "前川 映一" <eiichi_maekawa@...>
10 messages
2010/02/02
[#46841] Re: メーリング;;文字化け::iso-2022-jp-2
— Kunimi Ikeda <kunimi.ikeda@...>
2010/02/02
いけだと申します。
[#46850] irbでrequireできるがrubyコマンドだとできない — 竹内 英樹 <hideki.takeuchi@...>
竹内と申します。
5 messages
2010/02/06
[ruby-list:46865] Re: []= メソッドの第一引数を省略したい
From:
Yuya Takeyama <sign.of.the.wolf.pentagram@...>
Date:
2010-02-18 16:04:17 UTC
List:
ruby-list #46865
from_kyushu さん、こんにちは。 ご返答ありがとうございます。 (2010年02月18日 03:36), from_kyushu wrote: > 引数が2つ以上あるメソッドで、1番目の引数だけにデフォルト値を設定することは出来ません。 > 2番目以降にもデフォルト値を設定するか、可変長引数を使う必要があったと思います。 > なのでこう書けば動きました。 > > -------------------- > class MyArray < Array > def []=(key,val=nil) > if val.nil? > self.push(key) > else > super(key,val) > end > end > end > > arr = MyArray.new > arr[] = 1 # => 1 > arr[] = 2 # => 2 > arr # => [1, 2] > -------------------- > > from_kyushu > なるほど!そういうことだったんですね。 オライリーの本で、確かにそういったことを読んだ覚えはありますが、 いざ書いてみると、自分の理解がまだまだなことを思い知らされますね・・・。 ですが、 > if val.nil? > self.push(key) > else ここの部分はちょっと不思議ですね。 てっきり key.nil? を見るべきだと思っていたので。 このような仕様にした意図が気になるところです。 軽い気持ちで質問したつもりが、思った以上に深かったようで、 これからの参考になりそうです。 どうもありがとうございました。 Yuya Takeyama