В чем разница между proc {} и & proc {} - PullRequest
1 голос
/ 25 февраля 2012

В чем разница в использовании ниже

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'}

1 Ответ

2 голосов
/ 25 февраля 2012

В первом из двух параметров &a также будет захватывать блок, переданный следующим образом:

abc {puts "Hello world"}

Это то же самое, что:

xyz(proc {puts "Hello world"})

Другойиз двух позволяет только последний из двух.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...