起风了 梦开始
www.myvary.cn

关于集合遍历的各种方法

each

each的作用基本取代了ruby中的关键词for,当你需要迭代一个集合的时候,应该首先想到它,无论是从语义上还是便捷性上,each都远胜于for

 

 

map

map的作用于each大体相同,最大同是map会将其处理后的结果集合作为返回值返回,这样就能省去了那些不必要的中间变量

 

 

select

可以把它当做一个正向的过滤器(filter),选择返回select迭代中计算结果为true的元素

 

reject

select相反,可以看作是反向过滤器(filter),选择返回reject中迭代计算结果为false的元素

 

partition

根据传入partition代码块中的条件,把集合结果分为两部分: 满足条件(true)和不满足条件(false),其实就相当于同时应用了selectreject过滤器

 

find

find可以用来查找集合中满足条件的第一个值,并会作为结果返回。如果你要找的是集合中的所有同类值,那么估计find就帮不到你了。

reduce

不明白的可以回头看Ruby: 一次搞懂Reduce,Inject方法,这货比较强大,可以用来实现这里讲到的其它几个迭代方法,例如map,select,find等,改天可以专门写一篇文章来介绍它。

 

all?

通过迭代来判断某个集合中的所有元素是否满足all?代码块中所给条件,只有当所有元素都满足才会返回true,否则返回false

 

any?

集合中只要有一个满足条件的就返回true

 

times

times在这里做次数的意思,表示执行代码块多少次

 

each_with_index

each_with_index可以在遍历集合的同时,给出你元素所在的下标位置。

 

while、for、loop、until

明显是用来凑内容的,一般的Ruby教程都会介绍这个关键字的用法,这里只贴一遍代码,不做过多介绍了:

 

打赏

未经允许,不得转载本站任何文章:刘鑫的博客 » 关于集合遍历的各种方法

分享到:更多 ()