2011/02/16

Rubyの面白いところ Part 10 「多重代入における*の取り扱い」

多重代入は複数の式または配列から同時に代入を行う。左辺の最後の式の直前に*がついていると、対応する左辺のない余った要素が配列として代入される。余った要素が無い時には空の配列が代入される。

  1. foo, bar = [1, 2] # foo = 1; bar = 2  
  2. *foo = 1, 2, 3 # foo = [1, 2, 3]  

ここまでは便利だなぁーと思うのですが、次の仕様がどう有効活用するのかよくわからない...

特に最後の単体の*はメソッド呼び出しにおいて引数を完全に無視したいときに使用できます。

  1. def foo(*)  
  2. end  
  3. foo(1,2,3) # ok  
  4.   
  5. def bar()  
  6. end  
  7. bar(1,2,3) # in `bar': wrong number of arguments (3 for 0) (ArgumentError)  

何か有効活用する意味があると思うんですが、思いつきません...

参考: Rubyリファレンスマニュアル

0 件のコメント: