Ruby中map, collect,each,select,reject,reduce的区别
# map 针对每个element进行变换并返回整个修改后的数组
def map_method
arr1 = ["name2", "class2"]
arr1.map {|num| num + "and"}
print "map ====",arr1, "\n"
end
def map1_method
arr1 = ["name2", "class2"]
arr1.map! {|num| num + "and"}
print "map! ==== ", arr1, "\n"
end
def map2_method
arr1 = ["name3", "class3"]
# &:表示item
arr2 = arr1.map(&:upcase)
print "map2 ====", arr2, "\n"
end
# reduce 把array变换为一个值后返回
def reduce_method
arr1 = ["a", "b", "c", "d"]
arr2 = arr1.reduce(:+)
print "reduce ====", arr1, "\n"
print "reduce ====", arr2, "\n"
end
def reduce_method2
sum1 = (1..100).reduce(:+)
sum2 = (1..100).reduce(0) do |sum, value|
sum + value
end
print "reduce sum1 ====#{sum1}\n"
print "reduce sum2 ====#{sum2}\n"
end
# select 根据条件返回一个子集
def select_method
arr = (1..8).select {|x| x % 2 == 0}
print "select ====", arr, "\n"
end
#reject 根据条件提出一个子集
def reject_method
arr = (1..8).reject {|x| x % 2 == 0}
print "reject ====", arr, "\n"
end
#each 遍历数组每个元素,但不生成新的数组
def each_method
arr1 = ["name2", "class2"]
arr2 = arr1.each {|num| num + "and"}
print "each ====", arr2, "\n"
end
#collect 同map一样,collect!同map!一样
def collect_method
arr1 = ["name2", "clas2"]
arr2 = arr1.collect { |num| num + "and" }
print "collect ====", arr2, "\n"
end
Ruby中map, collect,each,select,reject,reduce的区别的更多相关文章
- Ruby中访问控制符public,private,protected区别总结
重点关注private与protected public 默认即为public,全局都可以访问,这个不解释 private C++, “private” 意为 “private to this cla ...
- hadoop中map和reduce的数量设置问题
转载http://my.oschina.net/Chanthon/blog/150500 map和reduce是hadoop的核心功能,hadoop正是通过多个map和reduce的并行运行来实现任务 ...
- 【转】Python 中map、reduce、filter函数
转自:http://www.blogjava.net/vagasnail/articles/301140.html?opt=admin 介绍下Python 中 map,reduce,和filter 内 ...
- Python函数式编程中map()、reduce()和filter()函数的用法
Python中map().reduce()和filter()三个函数均是应用于序列的内置函数,分别对序列进行遍历.递归计算以及过滤操作.这三个内置函数在实际使用过程中常常和“行内函数”lambda函数 ...
- hadoop中map和reduce的数量设置
hadoop中map和reduce的数量设置,有以下几种方式来设置 一.mapred-default.xml 这个文件包含主要的你的站点定制的Hadoop.尽管文件名以mapred开头,通过它可以控制 ...
- python中map、reduce函数
map函数: 接受一个函数 f 和一个 list .格式:map( f , L),对L中的每个元素,进行f(x)的一个操作. 例如,对于list [1, 2, 3, 4, 5, 6, 7, 8, 9] ...
- 如何确定Hadoop中map和reduce的个数--map和reduce数量之间的关系是什么?
一般情况下,在输入源是文件的时候,一个task的map数量由splitSize来决定的,那么splitSize是由以下几个来决定的 goalSize = totalSize / mapred.map. ...
- Ruby中数组的遍历
转自:http://www.jianshu.com/p/8de9b60f9350 Ruby中有几个常用的遍历数组的方法,本人经常容易搞混.这里列出来总结一下. each: 从数组中取出一个元素,作为某 ...
- Ruby中Block, Proc, 和Lambda
Block Blocks就是存放一些可以被执行的代码的块,通常用do...end 或者 {}表示 例如: [1, 2, 3].each do |num| puts num end [1, 2, 3]. ...
随机推荐
- 新版谷歌浏览器设置flash插件不提示步骤
1.先去chrome实验室界面chrome://flags/#enable-ephemeral-flash-permission选择取消Disabled.取消该实验室选项. 2.然后去chrome:/ ...
- OleDbDataAdapter具体使用
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; usin ...
- AC日记——中山市选[2009]小明的游戏 bzoj 2464
2464 思路: 最短路: 代码: #include <cstdio> #include <cstring> #include <iostream> #includ ...
- 【转】如何只用CSS做到完全居中
英文原版链接:http://codepen.io/shshaw/full/gEiDt 我们都知道 margin:0 auto; 的样式能让元素水平居中,而 margin: auto; 却不能做到垂直居 ...
- Docker发布镜像至Docker Hub
第一步:Docker生成镜像 docker@default:~$ docker images REPOSITORY TAG IMAGE ID CREATED SIZE metal-workbench- ...
- python VENV 环境 requirements.txt的生成、使用
python项目 requirements.txt 文件,记录所有依赖包及其精确的版本号.用于新环境部署. 在虚拟环境中pip生成命令(正常环境类似): (venv) $ pip freeze > ...
- tomcat的环境配置
针对java8 选择tomcat进行配置 Tomcat 环境变量配置: 下载:http://tomcat.apache.org/download-80.cgi 解压后直接copy到C盘,这是免安装版本 ...
- bzoj3942
有一个S串和一个T串,长度均小于1,000,000,设当前串为U串,然后从前往后枚举S串一个字符一个字符往U串里添加,若U串后缀为T,则去掉这个后缀继续流程.将s中的每一个字符压入栈暴力将s中的字符和 ...
- 模板-网络流-Dinic
//Dinic struct Edge{ int from,to,cap,flow; Edge(){ } Edge(int a,int b,int c,int d){ from=a; to=b; ca ...
- 日期 function
SELECT SYSDATE, ADD_MONTHS(SYSDATE,), ADD_MONTHS(SYSDATE,), LAST_DAY(SYSDATE), MONTHS_BETWEEN(SYSDAT ...