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"})

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

原作者:
...