[#48450] 1.8.7と1.9.2の挙動の違いについて — "Jun'ya Shimoda" <jun-shimo@...>

下田です。

13 messages 2011/10/09

[ruby-list:48432] 実引数における *

From: "KISHIMOTO, Makoto" <ksmakoto@...4u.or.jp>
Date: 2011-10-03 08:59:53 UTC
List: ruby-list #48432
きしもとです

> わかりました。配列を引数にとるときは*を付けるのですね。でも今回の場合
> は、配列要素はreq.pathで持ってきて分割しているので、*はつ けなくてもよい
> というこですね。
(snip)
> > *はなんのためにあるのでしょうか?

ええと、大丈夫でしょうか?

実引数(メソッド呼び出し側の引数。メソッド定義側は仮引数)における * は、
配列に付けて、「あたかも、そこに引数として、その配列の内容をバラして
並べられているかのように」するものです。

irb> def foo a, b, c, d, e
irb>   puts "a == #{a}, b == #{b}, c == #{c}, d == #{d}, e == #{e}"
irb> end

irb> bar = [3, 4, 5]

irb> foo 1, *bar, 7
a == 1, b == 3, c == 4, d == 5, e == 7

In This Thread