以下用法有何不同
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 :(得分:2)
在这两个中的第一个中,&a
参数也将捕获像这样传递的块:
abc {puts "Hello world"}
这与:
相同xyz(proc {puts "Hello world"})
两者中的另一个只允许两者中的最后一个。