我有扫描项目的方法:
def scan(*items)
scanned_items = []
items.each { |item| scanned_items << item }
scanned_items
end
我经常看到(并使用)这种方法的内容 - 也就是说,创建一个空数组,在其中放入一些东西,然后返回数组。是否有更简洁的方式来写这个?
答案 0 :(得分:4)
这个具体的例子可以简化为这个
scanned_items = items.dup
答案 1 :(得分:3)
如果无事可做:
items.dup
简单的东西:
items.map(&:simple)
非常复杂的操作:
[].tap do |result|
items.each do |item|
# complex conditions, loops, etc
result << item
end
end