我似乎用以下模式编写了很多方法,似乎应该有更好的方法。是否有单行或更好的做法?
def combine_roster(roster)
rstr = []
roster.each do |r|
rstr << r.user
end
rstr
end
答案 0 :(得分:5)
是的,您可以使用map命令。以下是您尝试做的简写版本:
roster.map(&:user) # if roster = [r1, r2, r3] then the output will be [r1.user, r2.user, r3.user]
您可以在Ruby Array API中阅读有关map函数的更多信息:http://ruby-doc.org/core-2.0.0/Array.html#method-i-map