我怎么能缩短和扩展它:
def overview
puts "All As:"
for f in @a
puts f
end
puts "\n"
puts "All Bs:"
for f in @b
puts f
end
end
for f in @a
puts f
end
Run Code Online (Sandbox Code Playgroud)
我们能写吗?
puts @a.join("\n")
Run Code Online (Sandbox Code Playgroud)
在一般情况下,当您想要对多个数组执行某些操作时,可以将数组放入数组中,然后使用eacheg
[@a, @b].each do |list|
list.each { |value| puts value }
end
Run Code Online (Sandbox Code Playgroud)
一旦你开始做一些比打印输出值更复杂的事情,使用提取方法重构你正在执行的操作是有意义的,例如
[@a, @b].each do |list|
do_something_with list
end
Run Code Online (Sandbox Code Playgroud)
最后,如果您需要保留描述性标签("All As"等),您可以使用哈希:
{'As' => @a, 'Bs' => @b}.each_pair do |label, values|
puts "All #{label}"
puts values.join("\n")
end
Run Code Online (Sandbox Code Playgroud)