Proc lambada


基本


proc = Proc.new{|x| p x}
p proc.call(1)

→ 1
def func x
 x + yield
end

p func(1){2}
→ 3

lambada

lmd = lambda{|x| p x}

p lmd.call(1)

ブロックを受けるメソッド

配列

[1,2,3].each do |value|
  p value
end

ハッシュ

{:a => 1, :b => 2}.each do | key, value|
  p "#{key}:#{value}"
end
  • key
{:a => 1, :b => 2}.each_key do | key, value|
    p "key:#{key}"
end
  • value
{:a => 1, :b => 2}.each_value do |value|
    p "value:#{value}"
end
  • range
("a".."z").each do |value|
 p value
end
  • upto
2.upto(4) do |i|
 p i
end

スレッド