rails中arity的使用

api中看  arity  还是很有用的,能根据返回的数字状态,判断方法调用的传参方式!

class C
  def one;    end
  def two(a); end
  def three(*a);  end
  def four(a, b); end
  def five(a, b, *c);    end
  def six(a, b, *c, &d); end
end
c = C.new
c.method(:one).arity     #=> 0
c.method(:two).arity     #=> 1
c.method(:three).arity   #=> -1
c.method(:four).arity    #=> 2
c.method(:five).arity    #=> -3
c.method(:six).arity     #=> -3

"cat".method(:size).arity      #=> 0
"cat".method(:replace).arity   #=> 1
"cat".method(:squeeze).arity   #=> -1
"cat".method(:count).arity     #=> -1

例子:
if @entry.method(op_method).arity == 1
      flag = @entry.send(op_method,params[:ov].to_s.strip)
else
      flag = @entry.send(op_method)
end

猜你喜欢

转载自schooltop.iteye.com/blog/2311417
今日推荐