ruby中的Enumerable的使用
来源:互联网 发布:java如何得到.xlsx文件 编辑:程序博客网 时间:2024/06/06 05:47
昨天,跟朋友review code,发现了一个hash_obj.collect写成了hash_obj.each.collect。就想对Hash有个简单的总结。
首先查看Hash的祖先。
Hash.ancestors #> [Hash, Enumerable, Object, Kernel, BasicObject]
找到Hash使用Mixin的方式include了Enumerable。Enumerable提供了一系列的方法,如each,collect,map,sort之类的。include了Enumerable的类只需要实现each就可以获得所有如collect, map, sort这样的方法。(当然sort比较特殊一点儿)。
当然Hash就直接有collect方法,而不需要调用hash_obj.each.collect。
实现一个例子:
class Kiwi include Enumerable def initialize(msg) @msg = msg end def each @msg.each { |msg| yield msg } endendkiwi = Kiwi.new([1,2,3])kiwi.collect {|num| num * 2} #=> [2, 4, 6]
Kiwi这个类就可以直接使用collect方法,因为它实现了each。
- ruby中的Enumerable的使用
- ruby的Comparable 和Enumerable
- ruby之Enumerable
- ruby 枚举,Enumerable
- Implementing Enumerable & Enumerator in Ruby
- Enumerable
- Linq中的Enumerable和Queryable
- Ruby中的压缩和解压缩的使用
- [Ruby On Rails]Rails中的ActiveSupport::Callbacks的使用
- ruby-dbi的使用
- ruby class_eval的使用
- [Ruby] inject的使用
- ruby 数组的使用
- Ruby学习-Ruby类的使用
- [Ruby] ruby中的拟态方法的调用中的小细节
- using an enumerable built-in Ruby to access and manipulate nested data
- 浅析如何使用Ruby中的“split”方法
- sidekiq在 Plain Ruby 项目中的使用
- 当IDENTITY_INSERT 设置为 OFF 时,不能为表 'users' 中的标识列插入显式值的解决方案
- Qt QDomDocument的setContent报错问题
- php学习 第五十五节
- eclipse tomcat启动错误情况之一 SetPropertiesRule
- android --支持不同的设备
- ruby中的Enumerable的使用
- OpenSTA使用详解[压力测试工具]
- 关于double运算,精度,补位的解决方法。
- 浏览器前进后退按钮失效
- php学习 第五十六节
- zookeeper: 入门 - 3 - API常用函数功能与参数详解
- eclipse下切换svn用户 (换用户登录)
- php学习 第五十七节
- Eclipse之ANT使用