📅  最后修改于: 2023-12-03 14:56:46.778000             🧑  作者: Mango
在 Ruby 中,collect() 是常用的枚举方法,它可以通过给定的块来转换集合中的元素,并返回一个新集合。它也被称为 map() 方法。
collect() 方法可以在数组、哈希表和范围等集合上操作。下面我们将介绍它在数组中的使用。
collect() 方法的语法如下:
array.collect { |item| block }
array.map { |item| block } # map() 是 collect() 方法的别名
其中,array 是待操作的数组,item 是数组中的元素,block 是一个需要执行的块。
假设我们有一个数组,其中包含一些数字:
numbers = [1, 2, 3, 4, 5]
我们希望将所有数字乘以 2,并返回一个新数组。可以使用 collect() 方法完成:
doubled_numbers = numbers.collect { |num| num * 2 }
这里,block 中的代码就是将数组中的元素乘以 2。
我们可以打印出变量 doubled_numbers 来验证它是否正确:
puts doubled_numbers # 输出 [2, 4, 6, 8, 10]
我们还可以使用 collect() 方法来将数组中的字符串转换为大写:
strings = ["hello", "world"]
uppercase_strings = strings.collect { |string| string.upcase }
puts uppercase_strings # 输出 ["HELLO", "WORLD"]
collect() 方法会返回一个新数组,其中每个元素都是通过 block 进行转换得到的。
如果没有给定块,则 collect() 方法会返回一个 Enumerator 对象,它可以被用来枚举数组中的元素。
除了 collect() 方法之外,Ruby 还提供了另外一些实现相似功能的方法,包括:
collect() 方法是 Ruby 中常用的枚举方法之一,它可以将数组中的元素进行转换,并返回一个新的数组。我们可以通过多次使用 collect() 方法来实现复杂的逻辑运算。
同时,我们也需要注意 collect() 方法的返回值以及它与其它实现类似功能的方法之间的区别。