もりきゅうです。

Yukihiro Matsumoto さんは書きました:
>|TkButton.new(nil, Text: 'hello', Command: proc{print "hello"; exit}).pack
>|# 現状は,
>|# TkButton.new(nil, 'text'=>'hello', 'command'=>proc{print "hello"; exit}).pack

ふむふむ。ということは,これに対するメソッド定義は
どういうふうに書けるようになるのでしょうか?

キーワード引数の利点は,
  引数の意味が分かりやすい。
  省略値がどの引数でも使える(たぶん)。
といったところかな。

あと,これはいまさらながらに気づいたことですが,
-- begin
def foo(first, rest)
  p rest
end
foo nil, 'text'=>'hello', 'command'=>proc{print "hello"; exit}
-- end
ここで rest が Hash になることはどこかに書いてありましたっけ?

-- begin
foo nil, 'text'=>'hello', 'command'=>proc{print "hello"; exit}, 1
-- end
は parse error だし。

..って書いてみたけど,
ruby-man-1.4-jp/syntax.html#hash
  >ハッシュの要素が1つ以上ある場合,曖昧でなければ {, }は省略できます. 
なるほど。^^;

----
Kazuhiro Yoshida  moriq.kazuhiro / nifty.ne.jp