#ArgumentError
Argumentとは"引数"と言う意味です。
ArgumentErrorは「引数の数が合わないよー」というメッセージになります。
様々なケースが考えられますので、
本質的な基礎の部分を例に考えて行こうと思います。
wikiで「Rubyを対話的に実行 (REPL) するためのシェル」と紹介されている
irbを使っていきます。
下記の実引数と仮引数を用いたコードを、irbで実行
def test(number)
puts number * number
end
test(5)
testの引数に(5)を設定して仮引数(number)に値を渡すと、
25という結果が出力されました。
エラーメッセージを翻訳するとこうです。
コンピューターさんがこう言ってます
「引数が1つあることを期待してたのに、0だったよ」
引数が一つ足りないんですね。
今度はこう言っていますね
「引数が1つあることを期待してたのに、2つだったよ」
一個多いよと怒っています。
実引数(5, 6)を2つ送ろうとしても、受け取る側の仮引数(number)の数が1つだと上手くいかないんですね。
#まとめ
ArgumentErrorは「引数の数が合わないよー」というエラーです。
メソッドを定義してる箇所の、実引数・仮引数を確認してみましょう!