2013-04-02
■ [ruby] メソッドチェーンをinjectで書く
- https://twitter.com/moro/status/318962669908545536
- https://gist.github.com/moro/5290187
- http://qa.atmarkit.co.jp/q/2826
このへんを見て。
obj.foo(1).foo(2).foo(3)
みたいのってうまくmapとかでまとめられないけど、これは
(( obj.foo(1) ).foo(2) ).foo(3)
という左畳込みの形なので、injectを使って
[1,2,3].inject(obj){|sum, item| sum.foo(item)}
と書ける。というメモ。