From: "kachick (Kenichi Kamiya)" Date: 2012-06-13T03:01:31+09:00 Subject: [ruby-dev:45726] [ruby-trunk - Bug #6581] Array#shuffle, Array#shuffle! の受け付ける引数が想定しづらい Issue #6581 has been updated by kachick (Kenichi Kamiya). 御返信有難うございます。 なるほど、確かにそうですよね・・・ Array#sample (これもハッシュ引数受け付けたんですね) と、 Kernel#open共に、次の動きを取ることを確認しました。 * 最後の引数にハッシュ以外のオブジェクトを渡すとwrong number of argumentsが出る * ハッシュの中身自体に関しては、特になにもでない これらから、Array#shuffleの動きにのみ関して検討すべきでは無い旨が理解出来ました。 お騒がせしました。 ---------------------------------------- Bug #6581: Array#shuffle, Array#shuffle! の受け付ける引数が想定しづらい https://bugs.ruby-lang.org/issues/6581#change-27198 Author: kachick (Kenichi Kamiya) Status: Rejected Priority: Low Assignee: Category: core Target version: ruby -v: ruby 1.9.3p194 (2012-04-20 revision 35410) [i686-linux] # 状況 引数でHashを渡した際、該当Hashの利用のされ方が想定しづらく感じました。 具体的には、以下のとおりです。 [].shuffle Random.new #1. #=> ArgumentError: wrong number of arguments (1 for 0) [].shuffle random: Random.new #2. #=> [] [].shuflle {} #3. #=> [] [].shuffle a: false, b: false #4. #=> [] るりま記載を見た限りですが、Hashのペアとして :random => Random のみを 想定しているものだと理解しています。 1のようにHash以外であれば例外を出すのに、 Hashの場合はキーや数を問わずに全て受け付けるという動作に違和感を感じました。 # 希望 2以外の形でHashが渡された際、例外を出して貰えると統一感と安心感が増すと思います。 -- http://bugs.ruby-lang.org/