是否还有其他最快的打印相同的结果?

时间:2013-07-16 06:39:29

标签: ruby

代码:

arr = [[1,2,3],[4,5,6],[7,8,9]]
a=0
b=0
while b <= 2
    a=0
    while a <= 2
    print arr[a][b]
    a+=1
    end
b+=1
puts " "
end

输出:

147
258
369

是否有更快的方法可以达到相同的效果?

我只是一个初学者,所以不要太过分了。

3 个答案:

答案 0 :(得分:1)

是的,使用#join方法:

print arr.transpose.map { |a| a.join('') }.join(' ')

或者如果每个值应该在不同的行中,那么你可以写

puts arr.transpose.map { |a| a.join('') }

答案 1 :(得分:1)

这应该做:

arr = [[1,2,3],[4,5,6],[7,8,9]]
puts arr.transpose.map(&:join).join(' ')
# => 147 258 369

答案 2 :(得分:1)

您可以为每一行使用puts

arr.transpose.each{|l| puts "#{l.join} "}

会得到与你相同的结果,但也许你想要

arr.transpose.each{|l| puts l.join}