Как определить количество принятых аргументов в лямбде в рубине - PullRequest
2 голосов
/ 12 июля 2010

Существует ли какой-либо метод или что-то x, в котором при условии z = lambda {|x, y, z| nil} мы можем сказать

z.x #=> 3

Конечно, синтаксис может отличаться, если он выполняет свою работу.Спасибо!

Ответы [ 2 ]

8 голосов
/ 12 июля 2010

Да.

z.arity #=> 3
4 голосов
/ 12 июля 2010

Метод Proc#arity говорит вам следующее:

ruby-1.9.1-p378 > f = lambda { |x,y,z| nil }
 => #<Proc:0x000001009ca830@(irb):1 (lambda)> 
ruby-1.9.1-p378 > f.arity
 => 3 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...