Ruby中Enumerable#inject用法示范
recorder = Recorder.newrecorder.methods.sortrecorder.play_for(String)
它实现了对String对象(你应该可以想起来,Ruby的类也是对象)调用#methods(), 然后对#methods返回结果调用#sort().
其实上面这个Recorder示例和本文开头的那个范例原理相同,前一个调用可以响应第一个消息,返回的结果则分别可以响应接下来的消息,对比这两个示例可以对Enumerable#inject的强大之处有所体会。
?
参考:http://blog.jayfields.com/2008/03/ruby-inject.html