Ruby 仮引数の * と実引数の *
よく混乱してしまうので整理。
仮引数の * は可変長引数
def greet name, *messages messages.each do |message| puts "#{message}, #{name}." end end greet 'Ruby', 'Hello', 'こんにちは' # => "Hello, Ruby." "こんにちは, Ruby." # 単に引数を無視したい場合にも使える def greet name, * end
実引数の * は配列の展開
def greet_twice name, first_message, second_message puts "#{first_message}, #{name}." puts "#{second_message}, #{name}." end greetings = %w(Hello Hola) greet_twice 'Ruby', *greetings # => "Hello, Ruby." "Hola, Ruby."
- 作者: Rubyサポーターズ,すがわらまさのり,寺田玄太郎,三村益隆,近藤宇智朗,橋立友宏,関口亮一
- 出版社/メーカー: 技術評論社
- 発売日: 2013/08/10
- メディア: 大型本
- この商品を含むブログ (12件) を見る