[#46807] [ruby-trunk - Bug #7625][Open] Arrayを継承したオブジェクトのcompactがArrayを返す — "mogya@... (Daisuke Furukawa)" <mogya@...>

19 messages 2012/12/26

[#46822] [ruby-trunk - Feature #7639][Open] More freedom for location of comments — "sawa (Tsuyoshi Sawada)" <sawadatsuyoshi@...>

14 messages 2012/12/30

[ruby-dev:46713] [ruby-trunk - Bug #7529] キーワード引数を使うと最後のほうの通常の引数にハッシュを渡せない?

From: "matz (Yukihiro Matsumoto)" <matz@...>
Date: 2012-12-06 18:33:37 UTC
List: ruby-dev #46713
Issue #7529 has been updated by matz (Yukihiro Matsumoto).


残念ながら仕様です。キーワードのためのハッシュと純粋に引数であるハッシュの区別はできないので。
末尾に {} を追加するくらいでしょうか。

Matz.

----------------------------------------
Bug #7529: キーワード引数を使うと最後のほうの通常の引数にハッシュを渡せない?
https://bugs.ruby-lang.org/issues/7529#change-34490

Author: ngoto (Naohisa Goto)
Status: Open
Priority: Normal
Assignee: 
Category: 
Target version: 
ruby -v: ruby 2.0.0dev (2012-12-06) [x86_64-linux]


 def foo(h, k: 0)
   p [ h, k ]
 end
 h = { 1=> 2 }
 foo(h)

を実行すると
 ArgumentError: unknown keyword: 1
のエラーが出ますが、hがハッシュの場合に、キーワードkのデフォルト値を保ったまま、fooにhを渡すことができないのは仕様でしょうか?

間に省略可能な通常の引数を入れて、

 def foo2(h, dummy = nil, i: 0)
   p [ h, dummy, i ]
 end
 h = { 1=> 2 }
 foo2(h)

とやっても同様に
 ArgumentError: unknown keyword: 1
が出てしまいます。(r38235 にて実行)



-- 
http://bugs.ruby-lang.org/

In This Thread