当前位置: 代码迷 >> Ruby/Rails >> ruby基本类型学习笔记(二)
  详细解决方案

ruby基本类型学习笔记(二)

热度:151   发布时间:2016-04-29 02:20:59.0
ruby基本类型学习笔记(2)

一.遍历,搜索

?

enum.all?{|obj| block}

判断所有元素都满足模中条件,元素都通过条件block返回true,否则返回false

[1,2,3,4,5].all?{|i| i >= 1}   #返回true[1,2,3,4,5].all?{|i| i > 1}     #返回false

?

enum.any?{|obj| block} ?

判断集合中是否有至少一个元素满足条件,满足返回true,否则返回false

[1,2,3,4,5].any?{|i| i > 1}    #返回true[1,2,3,4,5].any?{|i| i > 5}     #返回false

?

enum.collect{|obj| block} ?

集合中的每个元素传递调用block,并保存block运行返回的结果

[1,2,3,4,5].collect{|i| i + 1}   #返回[2,3,4,5,6]

?

enum.find(ifnone = nil){|obj| block} ?

寻找集合中符合某条件的一个元素,运行时依次传递每个元素给block,直接返回第一个使得block返回值为true的元素。如果没有找到任何符合条件的元素,则返回参数ifnone

[1,2,3,4,5].find{|i| i>2}  #返回3

?

enum.find_all{|obj| block} ?

寻找集合中所有符合某条件的元素。和enum.select方法功能相同。

[1,2,3,4,5].find_all{|i| i>2}  #返回[3,4,5]

?

enum.include?(obj)

判断集合中是否包含obj

[1,2,3,4].include?(1)  #返回true[1,2,3,4].include?(5)   #返回false

?

求和:

[1,2,3,4,5].inject{|sum,i| sum + n}  #返回1+2+3+4+5的结果为15

?

求积:

[1,2,3,4,5].inject{|product,i| product * n}   #返回120

?

将集合按条件分割:

[1,2,3,4,5].partition{|i| i%2 == 0}   #返回[[2,4],[1,3,5]]

?

?

二.比较,排序

?

enum.max和enum.min

返回集合中最大的元素和最小元素

[1,2,3,4,5].max    #返回5[1,2,3,4,5].min    #返回1

?

enum.sort?

返回按照元素大小排序后的集合

[1,3,2,4].sort    #返回[1,2,3,4]

?

?

三.区间

?

".."表示连接起点和终点,包括终点

"..."表示连接起点和终点,不包括终点

1..10   #表示1,2,3,4,5,6,7,8,9,101...10   #表示1,2,3,4,5,6,7,8,9'a'..'z'  #表示a,b,c,d,e......x,y,z

?

区间转换为数组

(1..4).to_a  => [1,2,3,4]

?

区间具有所有Enumerable模块提供的方法

(1..5).max      #返回5

?

?

?

?

?