けいじゅ@日本ラショナルです.

In [ruby-list :03683 ] the message: "[ruby-list:3683] Re: keyword
argments [Re: boolean values ] ", on Aug/15 16:18(JST) WATANABE
Hirofumi <watanabe / ase.ptg.sony.co.jp> writes:

>わたなべです.

>:def foo(fix1, fix2, keywords={})
>:  ...
>:end
>:foo a1, a2, :public => FALSE, :option => [1,2,3]

>:こんな呼び出し方ができます. ほとんどキーワード式に見えませんか? 当然, 
>:辞書側は順番は関係ありません.

>:symbol という形式は使ったことなかったけど,
>'public' => FALSE 的な使いかたは結構してます.
>引数の順番が関係ないってのがわたしも気に入ってます.

おぉ!! このことは既成の事実だったんですね...

>:# でも, これって, どうして通るんだろう!? 前半は普通の引数で, 後半がま
>:# とめてhashなのに... 
>:まさか, バグじゃないですよね?
>
>[ruby-list:3272] を参照してください.

確かに(@^^@;;;; 

でも, 妙にあっさり書いてありますね. 上記のような使い方ができるとはっき
り書いてくれれば良かったのに...

以前は, 

  def foo(a1, a2, *opt=[])...end
  foo arg1, arg2, [:public, FALSE], ...

のようなインターフェイス仕様の関数を定義したことがありますが, キーワー
ド部分の分析に手間がかかるし, 見栄えも良くないんでそれっきり使っていま
せんでした...

# 以前, 松本氏ともこのことに関して話したことがあるような覚えがあるんだ
# けどなあ... 
# 松本氏もこういう記述法があると教えてくれれば良かったのに...

__
..........................................石塚 圭樹@日本ラショナル...
----------------------------------->> e-mail: keiju / bc.mbn.or.jp <<---