ruby 中each, map和collect的区别

map and collect are the same, they return an array constructed as the result of calling the block for each item in the array.

irb(main):002:0> [1,2,3,4].collect {|n| n*2}
=> [2, 4, 6, 8]
irb(main):003:0> [1,2,3,4].map {|n| n*2}
=> [2, 4, 6, 8]

each will evaluate the block but throws away the result of each block‘s evaluation and returns the original array.

irb(main):001:0> [1,2,3,4].each {|n| n*2}
=> [1, 2, 3, 4]

  

时间: 2024-10-21 04:06:23

ruby 中each, map和collect的区别的相关文章

ruby on rails 里pluck和select(map、collect)的区别

比如有一个users表,要等到user的id数组: select id from users where age > 20; 要实现在如上sql语句,在rails中有以下几种写法: User.where('age > 20').select(:id).collect(&:id) User.where('age > 20').select(:id).map(&:id)  -> SELECT id FROM `users` WHERE (age < 20) Use

ruby中proc和lambda的return区别

学习ruby有一段时间了,但是我看了好几遍proc和lambda的return区别的区别讲解,始终没明白到底什么区别,今天上午又看,终于感觉是茅塞顿开有点领悟了 一下内容部分来自<<ruby元编程>>第二版92页 1 lambda中的return表示仅仅才从,这个lambda中返回,那么从lambda中返回到底是啥意思呢. l = lambda {return 10} 我的理解是,你正常考虑代码快执行 l被赋值成10,而且return的影响范围仅仅在大括号里面.并没有影响其他的代码

JAVA中List,Map,Set接口的区别

从三点来分析它们之间的不同: 1.继承的接口不同: List,Set接口都是继承于Collection接口的,而Map接口不是,它是一个顶层接口. 2.自身特点: List:用来处理序列的.对于放于的元素是有序的并且可以重复. Set:用来处理集合的.对于放于的元素是无序的并且不可以重复. Map:用来处理键值对.key值不能重复,如果重复,则会被覆盖,并且放入无序. 3.实现类: List:有三个实现类,ArrayList  Vector  LinkedList Set:有三个实现类,Hash

Spark 中 map 与 flatMap 的区别

通过一个实验来看Spark 中 map 与 flatMap 的区别. 步骤一:将测试数据放到hdfs上面 hadoopdfs -put data1/test1.txt /tmp/test1.txt 该测试数据有两行文本: 步骤二:在Spark中创建一个RDD来读取hdfs文件/tmp/test1.txt 步骤三:查看map函数的返回值 得到map函数返回的RDD: 查看map函数的返回值--文件中的每一行数据返回了一个数组对象 步骤四:查看flatMap函数的返回值 得到flatMap函数返回的

JAVA中List、Map、Set的区别与选用

类层次关系如下: Collection ├List│├LinkedList│├ArrayList│└Vector│ └Stack└SetMap├Hashtable├HashMap └WeakHashMap 下面来分别介绍 Collection接口 Collection是最基本的集合接口,一个Collection代表一组Object,即Collection的元素(Elements).一些 Collection允许相同的元素而另一些不行.一些能排序而另一些不行.Java SDK不提供直接继承自Col

Ruby中访问控制符public,private,protected区别总结

重点关注private与protected public 默认即为public,全局都可以访问,这个不解释 private C++, “private” 意为 “private to this class”, 但是Ruby中意为 “private to this instance”.意思是:C++中,对于类A,只要能访问类A,就能访问A的对象的private方法.Ruby中,却不行:你只能在你本对象的实例中访问本对象的private方法.因为Ruby的原则是“private意为你不能指定方法接收

Java中集合List,Map和Set的区别

Java中集合List,Map和Set的区别 1.List和Set的父接口是Collection,而Map不是 2.List中的元素是有序的,可以重复的 3.Map是Key-Value映射关系,且Key不能重复 4.Set中的元素是无序的,不可重复的

Java中Set Map List 的区别

java中set map list的区别: 都是集合接口 简要说明 set --其中的值不允许重复,无序的数据结构 list   --其中的值允许重复,因为其为有序的数据结构 map--成对的数据结构,健值必须具有唯一性(键不能同,否则值替换) List按对象进入的顺序保存对象,不做排序或编辑操作.Set对每个对象只接受一次,并使用自己内部的排序方法(通常,你只关心某个元素是否属于Set,而不关心它的顺序--否则应该使用List).Map同样对每个元素保存一份,但这是基于"键"的,Ma

map集合中value()、keySet()、entrySet()区别

在Map集合中 values():方法是获取集合中的所有的值----没有键,没有对应关系, KeySet():将Map中所有的键存入到set集合中.因为set具备迭代器.所有可以迭代方式取出所有的键,再根据get方法.获取每一个键对应的值. keySet():迭代后只能通过get()取key entrySet(): Set<Map.Entry<K,V>> entrySet() //返回此映射中包含的映射关系的 Set 视图. Map.Entry表示映射关系.entrySet():迭