Actions
Bug #7529
closedキーワード引数を使うと最後のほうの通常の引数にハッシュを渡せない?
Status:
Rejected
Assignee:
-
Target version:
-
ruby -v:
ruby 2.0.0dev (2012-12-06) [x86_64-linux]
Backport:
Description
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 にて実行)
Updated by matz (Yukihiro Matsumoto) about 12 years ago
残念ながら仕様です。キーワードのためのハッシュと純粋に引数であるハッシュの区別はできないので。
末尾に {} を追加するくらいでしょうか。
Matz.
Updated by matz (Yukihiro Matsumoto) about 12 years ago
- Status changed from Open to Rejected
Actions
Like0
Like0Like0