closures - 过程 {} 和&过程 {}的区别是什么

  显示原文与译文双语对照的内容
0 0

以下用法有什么差异

a = proc { puts 'hii' }
def abc(&a)
 a.call
end
abc(&a)
def xyz(c)
 c.call
end
xyz(a)

在下面的实现中,可以将多个块作为参数传递。

def pqr(c, &t)
 c.call
 yield
 xyz(c)
 abc(&t)
end 
pqr(a) { puts 'block to method'}
时间: 原作者:

0 0

在第二个示例中,&a 参数还将捕获一个像这样传递的块:

abc {puts"Hello world"}

这与以下情况相同:

xyz(proc {puts"Hello world"})

二者中的另一个只允许两个的最后一个。

原作者:
...