質問: お世話になります。Ruby技術者認定試験合格教本Goldの勉強中にわからないことがあったので質問します。 ### 問題のコード ``` class Hoge def fuga(o=nil) hoge end private def hoge puts "Hoge" end end Hoge.new.fuga(Hoge.new) #=> Hoge ``` ### わからなかった点 Hoge.new.fugaによってfugaメソッドを呼び出そうとしていることはわかりますが、その後fugaメソッドの引数にHoge.newが渡されています。 **確かにfugaには引数が必要だと思いますが`(o=nil)`とされていて、なぜここにHoge.newを入れて渡してあげることで、動作するのかがわかりませんでした。** 何か理解するためのヒントをいただけたら幸いです。よろしくお願いします。
回答: > > なぜここにHoge.newを入れて渡してあげることで、動作するのかがわかりませんでした。 > > > 何も特別なことはありません。その場で`Hoge.new`を行って、その結果を引数に渡しているだけです。