我注意到我的 Ruby 项目中有一个常见的模式。这是一个例子。
def collect_reverses b
a = []
b.each do |element|
a << element.reverse
end
a
end
这个特殊的例子被精简到最基本的部分。通常循环内的代码更复杂。
所描述的模式有效。然而,这种模式的过程性质与其余代码的面向对象性质形成鲜明对比。
是否有更清洁/更面向对象的方法来完成相同的任务?
我注意到我的 Ruby 项目中有一个常见的模式。这是一个例子。
def collect_reverses b
a = []
b.each do |element|
a << element.reverse
end
a
end
这个特殊的例子被精简到最基本的部分。通常循环内的代码更复杂。
所描述的模式有效。然而,这种模式的过程性质与其余代码的面向对象性质形成鲜明对比。
是否有更清洁/更面向对象的方法来完成相同的任务?
参见Enumerable#collect
(也称为map
):
def collect_reverses(a)
a.collect(&:reverse)
end