【Ruby】メソッドの引数の数を調べる方法を紹介します

railsなんかを使っていると、たまに引数の数を調べたくなる時があります。

あまり使わないかもしれませんが、知っておくと便利です。

全然知らなかったので、備忘録として残しておきます。

versions
  • ruby 2.6.5

arityメソッドを使用してみよう

結論

arityメソッドを使用すれば、引数の数を調べられます

class Dog
  def voice(cry)
    p "#{cry}"
  end
end

dog = Dog.new
dog.method(:voice).arity

=> 1

返り値が「1」となっていますね。

ちなみにarityメソッドはblock引数の数も検証できるらしいです。

def cat(cry,&block)
  block.call(cry)
  p block.arity
end

cat 'nya-' do |cry|
  p cry
end

=> nya-
=> 1

2番目のやつはちょこっと遊んでみました笑

まとめ

  • arityメソッドで引数の数を検証できる
  • block引数の数も検証できる

備忘録なので簡単なもので実験してみました。

参考

Ruby on Rails 始めました

Rubyのブロックやメソッドの引数の数