Ruby/Справочник/Proc: различия между версиями

Содержимое удалено Содержимое добавлено
Строка 46:
Для блоков, создаваемых с использованием <tt>Kernel.proc</tt>, генерируется ошибка если число параметров передаваемых в блок превышает число параметров объявленных во время его создания. Для блоков, созданных при помощи <tt>Proc.new</tt>, дополнительные параметры просто отбрасываются.
Возвращает значение последнего вычисленного выражения в блоке. Смотри еще <tt>Proc#yield</tt>.
<source lang=ruby>a_procproc = Proc.new {|a, *b| b.collect {|i| i*a }}
a_procproc.call(9, 1, 2, 3) #=> [9, 18, 27]
a_procproc[9, 1, 2, 3] #=> [9, 18, 27]
a_procproc = Proc.new {|a,b| a}
a_procproc.call(1,2,3)</source>
<i>результат:</i>
<source lang=ruby>prog.rb:5: wrong number of arguments (3 for 2) (ArgumentError)