method, block, proc, lambda
method 的 capture 实例变量不 capture 局部变量
后 3 种 capture 局部变量不 capture 实例变量
block 和 proc 的参数可忽略,method 和 lambda 必须得给够参数
return
总是看最近的 method 和 lambda, 跳出 block 和 proc
block 如果不在参数中写 &block
的话,是不生成新对象的,是纯粹的控制流跳转,如果写了,生成 proc 对象
method 的类型是 Method
, proc 和 lambda 的类型是 Proc
(由于 lambda 出来得比较晚的历史缘故)
method 可以 .to_proc
变成 lambda