我正在练习在Ruby中使用数组和迭代。我能够理解代码的上下文,但我遇到了以某种方式显示输出的问题。
我的预期输出是:
0 0 0 0
0 1 0 0
0 0 0 1
0 0 0 0
目前的输出是:
0
0
0
0
0
1
0
0
0
0
0
1
0
0
0
0
我的代码是:
class Image
def initialize(image)
@image = image
end
def output_image
@image.each_index do |array|
subarray = @image[array]
subarray.each do |cell|
if array[0]
print "#{cell} \n"
elsif array[1]
print "#{cell} \n"
elsif array[2]
print "#{cell} \n"
elsif array[3]
print "#{cell} \n"
end
end
end
end
end
image = Image.new([
[0, 0, 0, 0],
[0, 1, 0, 0],
[0, 0, 0, 1],
[0, 0, 0, 0]
])
image.output_image
答案 0 :(得分:1)
你认为,这让你不必要地复杂化了。您可以迭代子数组并使用空格连接它们。
def output_image
@image.each do |image|
puts image.join(' ')
end
end
答案 1 :(得分:1)
https://www.typescriptlang.org/docs/handbook/modules.html#ambient-modules来到这里救援。使用空格连接行,使用回车符连接结果,获利。
{{1}}