Ruby中带有示例的Array.collect方法

Ruby Array.collect方法

在之前的文章中,我们已经看到了如何实现Array。assoc()和Ruby代码中的Array.include?()方法。两种方法都用于查找Array类对象中某些对象的存在。两种方法都有一定的差异,我们也经历了它们。在本文中,我们将看到如何在Ruby程序中使用Array.collect方法。我们将借助其语法和程序代码来实现该方法。

方法说明:

此方法属于公共实例方法的类别,并且是在Ruby语言库中为Array类定义的。该方法遍历Array实例并根据Ruby代码的要求创建修改。此方法可以是破坏性的,也可以是非破坏性的,这意味着如果该方法是破坏性的,则此方法所做的修改将反映在实际的Array实例中,您可以通过添加“!”使方法具有破坏性方法后标记。如上所述,该方法也可以是非破坏性的,这仅意味着该方法创建的更改不会影响实际的Array实例。

语法:

    array_instance.collect {#block}

范例1:

=begin
	Ruby program to demonstrate collect method
=end

# 数组声明
array1 = ["1","Ramesh","Apple","12","Sana","Yogita","Satyam","Harish"]

# 输入
puts "Enter the character you want to add"
ele = gets.chomp

puts "Array instance after modification:"
print array1.collect { |x| x + ele } 

puts ""

puts "Actual Array:"
puts array1

输出结果

Enter the character you want to add
 ^
Array instance after modification:
["1^", "Ramesh^", "Apple^", "12^", "Sana^", "Yogita^", "Satyam^", "Harish^"]
Actual Array:
1
Ramesh
Apple
12
Sana
Yogita
Satyam
Harish

说明:

在上面的代码中,您可以观察到Array.collect方法的此变体是非破坏性的,因为在我们使用puts语句进行打印时,在实际的Array实例中看不到该方法所做的更改。

范例2:

=begin
	Ruby program to demonstrate collect! method
=end

# 数组声明
array1 = ["1","Ramesh","Apple","12","Sana","Yogita","Satyam","Harish"]

# 输入
puts "Enter the character you want to add"
ele = gets.chomp

puts "Array instance after modification:"
print array1.collect! { |x| x + ele } 

puts ""

puts "Actual Array:"
puts array1

输出结果

Enter the character you want to add
 %
Array instance after modification:
["1%", "Ramesh%", "Apple%", "12%", "Sana%", "Yogita%", "Satyam%", "Harish%"]
Actual Array:
1%
Ramesh%
Apple%
12%
Sana%
Yogita%
Satyam%
Harish%

说明:

在上面的代码中,您可以观察到Array.collect方法的此变体是破坏性的,因为在实际的Array中可以看到该方法所做的更改。您可以看到,在这两个语句中,我们都获得了一个附加的“%”符号,其中Array实例中存在所有元素。本示例仅告诉您如何使用“!”创建破坏性方法符号。