rb_scan_args

function rb_scan_args (Ruby 2.2.0)

前に上記ページを見た時は全然理解出来なかったのに、今日ふと見てみると 前回よりは理解出来た。

Array#secondを実装して遊んでみたときに、

Array#secondに引数の数のチェックを追加 · ore-public/ruby@3e3f8de · GitHub

なんとなく他の実装を参考に、上記の処理を書いたんだけど、これで必須引数の数を指定したことになったから secondの呼び出しで引数を渡さなかったらエラーになるようになったわけか。 今読むと、普通のこのリファレンスの説明で理解できたのに。 前回は、rb_scan_argsの中の実装をいきなり眺めてしまって、処理が長くて「ウワー」ってなって、この文章も理解出来なかったんだろうなぁ。

次は、省略可能引数を使うパターンのメソッドを考えて実装して遊んでみよう。