# \[ruby-trunk - Bug #6581\]\[Open\] Array#shuffle, Array#shuffle! の受け付ける引数が想定しづらい

**URL:** <https://www.ruby-forum.com/t/ruby-trunk-bug-6581-open-array-shuffle-array-shuffle/220534>\
**Category:** Development\
**Created:** [June 12, 2012, 7:00pm UTC](https://www.ruby-forum.com/t/ruby-trunk-bug-6581-open-array-shuffle-array-shuffle/220534 "2012-06-12T19:00:46Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![aris](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/a/258eb7/32.png) [@aris](https://www.ruby-forum.com/u/aris)\
**Post date:** [June 12, 2012, 7:00pm UTC](https://www.ruby-forum.com/t/ruby-trunk-bug-6581-open-array-shuffle-array-shuffle/220534/1 "2012-06-12T19:00:46Z")

</div>

Issue #6581 has been reported by kachick (Kenichi K.).

* * *

Bug #6581: Array#shuffle, Array#shuffle! の受け付ける引数が想定しづらい

> **[Bug #6581: Array#shuffle, Array#shuffle! の受け付ける引数が想定しづらい - Ruby master - Ruby...](https://bugs.ruby-lang.org/issues/6581)**
>
> Redmine

Author: kachick (Kenichi K.)  
Status: Open  
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が渡された際、例外を出して貰えると統一感と安心感が増すと思います。

---

<div class="post-metadata">

**Author:** ![kachick](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/k/e95f7d/32.png) [@kachick](https://www.ruby-forum.com/u/kachick)\
**Post date:** [June 12, 2012, 7:15pm UTC](https://www.ruby-forum.com/t/ruby-trunk-bug-6581-open-array-shuffle-array-shuffle/220534/2 "2012-06-12T19:15:58Z")

</div>

Issue #6581 has been updated by naruse (Yui NARUSE).

Status changed from Open to Rejected

## ハッシュを引数にとるメソッドは open をはじめとして他にもいろいろありますが、 原則サポートしていないキーが来ても無視します。

Bug #6581: Array#shuffle, Array#shuffle! の受け付ける引数が想定しづらい

> **[Bug #6581: Array#shuffle, Array#shuffle! の受け付ける引数が想定しづらい - Ruby master - Ruby...](https://bugs.ruby-lang.org/issues/6581#change-27185)**
>
> Redmine

Author: kachick (Kenichi K.)  
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が渡された際、例外を出して貰えると統一感と安心感が増すと思います。

---

<div class="post-metadata">

**Author:** ![kachick](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/k/e95f7d/32.png) [@kachick](https://www.ruby-forum.com/u/kachick)\
**Post date:** [June 12, 2012, 8:02pm UTC](https://www.ruby-forum.com/t/ruby-trunk-bug-6581-open-array-shuffle-array-shuffle/220534/3 "2012-06-12T20:02:10Z")

</div>

Issue #6581 has been updated by kachick (Kenichi K.).

御返信有難うございます。

なるほど、確かにそうですよね・・・  
Array#sample (これもハッシュ引数受け付けたんですね) と、  
Kernel#open共に、次の動きを取ることを確認しました。

- 最後の引数にハッシュ以外のオブジェクトを渡すとwrong number of argumentsが出る
- ハッシュの中身自体に関しては、特になにもでない

## これらから、Array#shuffleの動きにのみ関して検討すべきでは無い旨が理解出来ました。 お騒がせしました。

Bug #6581: Array#shuffle, Array#shuffle! の受け付ける引数が想定しづらい

> **[Bug #6581: Array#shuffle, Array#shuffle! の受け付ける引数が想定しづらい - Ruby master - Ruby...](https://bugs.ruby-lang.org/issues/6581#change-27198)**
>
> Redmine

Author: kachick (Kenichi K.)  
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が渡された際、例外を出して貰えると統一感と安心感が増すと思います。

---

<div class="post-metadata">

**Author:** ![kachick](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/k/e95f7d/32.png) [@kachick](https://www.ruby-forum.com/u/kachick)\
**Post date:** [June 14, 2012, 7:26am UTC](https://www.ruby-forum.com/t/ruby-trunk-bug-6581-open-array-shuffle-array-shuffle/220534/4 "2012-06-14T07:26:08Z")

</div>

Issue #6581 has been updated by knu (Akinori MUSHA).

## あるキーワード引数の廃止に伴い、指定されていたら警告するようにすることはあるかもしれませんが、 まったく知らないキーワードに関しては将来の拡張性（拡張した際の下位互換性の維持）のために無視する、 というのが慣例になっています。

Bug #6581: Array#shuffle, Array#shuffle! の受け付ける引数が想定しづらい

> **[Bug #6581: Array#shuffle, Array#shuffle! の受け付ける引数が想定しづらい - Ruby master - Ruby...](https://bugs.ruby-lang.org/issues/6581#change-27243)**
>
> Redmine

Author: kachick (Kenichi K.)  
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が渡された際、例外を出して貰えると統一感と安心感が増すと思います。
