ruby学習メモ

配列展開メソッド呼び出し

アスタリスクをつけることにより、配列を展開してそれぞれを引数とすることが出来る

 def five(a,b,c,d,e)
   "#{a} #{b} #{c} #{d} #{e}"
  end
 five(1,2,3,4,5)
 => "1 2 3 4 5"
 five(1,2,3, *['4','5'])
 => "1 2 3 4 5"
 five(*(1..5).to_a)
 => "1 2 3 4 5"

lambda

 anyfunc = lambda {|n| n * n}
 ((1..10).collect(&anyfunc).join(", "))
 => "1, 4, 9, 16, 25, 36, 49, 64, 81, 100"

lambda
与えられたブロックから手続きオブジェクト (Proc のインスタンス) を生成して返します(Proc.newと同じです)。
ブロックが指定されなければ、呼び出し元のメソッドで指定されたブロックを手続きオブジェクトとして返します。呼び出し元のメソッドがブロックなしで呼ばれると ArgumentError 例外が発生します。

def hashparam(name, params)
  "#{name} params=#{params}"
end

hashparam(
  "test",
  {
    :param1=>"value1", 
    :param2=>"value2" 
  })
=> "test params=param1value1param2value2"