list = (1...10).to_a
list.map {|l| l >2} => [false, false, true, true, true, true, true, true, true]
list.collect {|l| l >2} =>[false, false, true, true, true, true, true, true, true]
list.select {|l|l >2} => [3, 4, 5, 6, 7, 8, 9]
list.reject {|l|l >2} => [1, 2]
如上:
- 這四個(gè)方法如果沒(méi)有block的話(huà) 都返回一個(gè) Enumerator對(duì)象。
- 這四個(gè)方法都不會(huì)修改原來(lái)的對(duì)象闹究,在給定block情況下返回一個(gè)新的數(shù)組
- map 和 collect 返回包含塊每次執(zhí)行結(jié)果的數(shù)組
- select 返回 塊執(zhí)行結(jié)果為true的元素?cái)?shù)組
- reject 返回 塊執(zhí)行結(jié)果為false的元素?cái)?shù)組
- map 和 collect沒(méi)有區(qū)分 map更多的是出于一種約定而實(shí)現(xiàn)的