def map_method
arr1 = ["name2","class2"]
arr2 = arr1.map {|num| num + "and"}
print "map............",arr2,"\n"
end
def each_method
arr1 = ["name2","class2"]
arr2 = arr1.each {|num| num + "and"}
print "each............",arr2,"\n"
end
def collect_method
arr1 = ["name2","class2"]
arr2 = arr1.collect {|num| num + "and"}
print "collect............",arr2,"\n"
end
def map1_method
arr1 = ["name2","class2"]
arr2 = arr1.map! {|num| num + "and"}
print "map!............",arr2,"\n"
end
def collect1_method
arr1 = ["name2","class2"]
arr2 = arr1.collect! {|num| num + "and"}
print "collect!............",arr2,"\n"
end
def test
map_method
each_method
collect_method
map1_method
collect1_method
end
test
result:
map............["name2and", "class2and"]
each............["name2", "class2"]
collect............["name2and", "class2and"]
map!............["name2and", "class2and"]
collect!............["name2and", "class2and"]
为了更明了的了解each的用法,看下面的例子:
def each_deep_method
arr_test = [1,2,3]
arr_result = arr_test.each do |num|
num = num + 1
p num
end
arr_result
end
result:
2
3
4
=> [1, 2, 3]
可见each_deep_method的返回值arr_result是和arr_test相等的。
[总结]
(1)each只是遍历数组的每个元素,并不生成新的数组;
(2)map和collect相同用法,遍历每个元素,用处理之后的元素组成新的数组,并将新数组返回;
(3)map!同collect!
其中map和map!、collect和collect!的区别就不用纠结了吧,实在纠结就看下面的例子:
def map_deep_method
arr_test = [1,2,3]
arr_test.map do |num|
num += 1
end
arr_test #[1, 2, 3]
end
def map1_deep_method
arr_test = [1,2,3]
arr_test.map! do |num|
num += 2
end
arr_test #[3, 4, 5]
end
分享到:
相关推荐
### Ruby中使用each和collect进行迭代的用法 在Ruby编程语言中,迭代是一种非常重要的概念,用于遍历数组、哈希等集合类型中的元素。本文将深入介绍`each`和`collect`这两个常用方法的基本原理及其应用方式,并通过...
### Ruby标准库详解 #### 一、Array 类 在Ruby的标准库中,`Array`类提供了丰富的实例方法和类方法来处理数组。 ##### 1.1 Class methods **1.1.1 []** 用于创建一个新的数组。例如: ```ruby arr = [1, 2, 3]...
9. **迭代器**:`Map`也支持Ruby的各种迭代器,如`select`、`reject`、`collect`等,这些方法可以在遍历过程中根据条件筛选、转换或过滤元素。 10. **自定义比较**:`Map`可以使用`==`操作符与其他`Map`或哈希进行...
`Enumerator` 模块提供了一套灵活的方法,使得可以在不提供块的情况下对这些方法进行后续操作,如 `collect` 和 `map`。 最后,Ruby提供了清理字符串开头和结尾空格的方法,如 `strip`;转换字符大小写的方法,如 `...
Ruby的`each`迭代器是最常用的迭代器之一。它允许我们遍历数组或哈希的所有元素,并对每个元素执行指定的代码块。`each`迭代器的语法如下: ```ruby collection.each do |variable| code end ``` 在这个语法结构...
`, `collect`, `detect`, `each_with_index`, `entries`, `find`, `find_all`, `grep`, `include?`, `inject`, `map`, `max`, `member?`, `min`, `partition`, `reject`, `select`, `sort`, `sort_by`, `to_a`, `zip...
总结来说,Ruby中的迭代器如`each`和`collect`提供了遍历和操作集合的强大工具。`each`用于简单的逐个处理元素,而`collect`则允许你对集合进行转换,生成新的集合。这些概念在动态语言中极其重要,是编写高效、...
a3 = a2.collect { |x| x + 1 } # 同上,collect和map相同 print a2, a3 # 奇偶数筛选 a5 = a1.select { |x| x % 2 == 0 } # 选择偶数 print a5 a6 = a1.reject { |x| x % 2 == 0 } # 选择非偶数 print a6 # ...
Ruby的Enumerable模块包含了一系列迭代方法,如each、map、select、inject等,它们允许我们对集合进行遍历、筛选、转换等操作。这些方法的核心在于它们定义了一种模式,使得我们能够以一致的方式处理各种类型的集合...
3. `collect`(也称为`map`):它将集合中的每个元素传递给Block,并使用Block的返回值构建一个新的数组。 ```ruby ["H", "A", "L"].collect { |x| x.succ } # 对每个元素调用 succ 方法并返回新数组,这里是 ["I...
### Groovy 快速入门指南知识点...Groovy 的强大之处在于它的简洁性和灵活性,这些特性使得 Groovy 成为一种非常易于学习和使用的编程语言。通过掌握这些基础知识,您可以迅速地使用 Groovy 开发出高效、可靠的软件。
此外,Groovy 中的集合支持多种内置方法,如 `each`、`collect`、`find`、`findAll`、`inject`、`every`、`any`、`min`、`max` 和 `join` 等,极大地简化了数据处理的过程。掌握这些方法对于使用 Groovy 进行高效...
- **map/collect** - **功能描述**:通过将列表中的每个元素通过转换函数(`iterator`)映射为新值,生成一个新的数组。 - **参数**: - `list`:要映射的列表。 - `iterator`:每次迭代调用的函数。 - **示例*...
- **map**:通过一个转换函数创建一个新数组,别名为`collect`。 - **reduce**:将集合中的元素归结为单一值,也称为`inject`或`foldl`。 - **reduceRight**:与`reduce`类似,但是从右向左归结元素,别名为`...
在Groovy中,可以使用闭包来模拟Python和Ruby中的`yield`功能,即创建迭代器。 ```groovy class Foo { static void main(String[] args) { Foo foo = new Foo() for (x in foo.myGenerator) { print("${x}-") ...
### Ruby 迭代器:each 和 collect **each**:是最常用的迭代器之一,用于遍历数组或哈希等集合。 **collect**:也称为`map`,用于遍历集合并返回一个新的数组,新数组中的元素是原数组中元素经过指定操作后的结果...
`, `invoke`, `collect`, `map`, `inject`, `reduce`, `max`, `min`, `without`, `uniq`, `reverse`, `sort`, `zip`, `toArray`, `clone`, `inspect` 等。这些方法极大地提高了数组操作的灵活性和易用性。 #### 五...