📅  最后修改于: 2023-12-03 15:27:30.781000             🧑  作者: Mango
在 Ruby 语言中,经常需要对数组中的每一个元素都进行一些操作,例如对每个数字乘以 2、对每个字符串转换为大写、对每个布尔类型值取反等等。这时,数组映射操作就显得非常方便和实用。
数组映射指的是将数组中的每个元素按照某个规则进行转换,并返回一个新的数组。这个规则可以是一个函数或代码块,在 Ruby 中,代码块常被用来实现数组映射。
在 Ruby 中,使用 Array#map
方法进行数组映射,其基本语法如下:
new_array = old_array.map { |element| block }
其中,old_array
表示原始数组,new_array
表示映射后生成的新数组,block
即为代码块,对于原始数组中的每一个元素都会执行一次该代码块,其中 element
则代表数组中的元素。
numbers = [1, 2, 3, 4, 5]
new_numbers = numbers.map { |n| n * 2 }
puts new_numbers #=> [2, 4, 6, 8, 10]
words = ['hello', 'world', 'ruby']
new_words = words.map { |word| word.upcase }
puts new_words #=> ['HELLO', 'WORLD', 'RUBY']
class Person
attr_accessor :name, :age
def initialize(name, age)
@name = name
@age = age
end
def greeting
"Hi, I'm #{name} and I'm #{age} years old."
end
end
people = [
Person.new('Alice', 20),
Person.new('Bob', 25),
Person.new('Charlie', 30)
]
greetings = people.map(&:greeting)
puts greetings #=> ["Hi, I'm Alice and I'm 20 years old.", "Hi, I'm Bob and I'm 25 years old.", "Hi, I'm Charlie and I'm 30 years old."]
数组映射是 Ruby 中非常实用的功能,可以大大简化对数组操作的代码,同时也使得代码更加容易理解和维护。在实际开发中,我们应该灵活运用数组映射,以提高开发效率和代码可读性。